Skip to content

Instantly share code, notes, and snippets.

@xsoliah
Created June 6, 2017 10:52
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save xsoliah/20b4a8790888d5b4842769eeabe08248 to your computer and use it in GitHub Desktop.
Save xsoliah/20b4a8790888d5b4842769eeabe08248 to your computer and use it in GitHub Desktop.
error log npm
0 info it worked if it ends with ok
1 verbose cli [ 'C:\\Program Files\\nodejs\\node.exe',
1 verbose cli 'C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js',
1 verbose cli 'install',
1 verbose cli 'highcharts',
1 verbose cli '--save' ]
2 info using npm@3.10.10
3 info using node@v6.10.3
4 silly loadCurrentTree Starting
5 silly install loadCurrentTree
6 silly install readLocalPackageData
7 silly fetchPackageMetaData highcharts
8 silly fetchNamedPackageData highcharts
9 silly mapToRegistry name highcharts
10 silly mapToRegistry using default registry
11 silly mapToRegistry registry http://registry.npmjs.org/
12 silly mapToRegistry data Result {
12 silly mapToRegistry raw: 'highcharts',
12 silly mapToRegistry scope: null,
12 silly mapToRegistry escapedName: 'highcharts',
12 silly mapToRegistry name: 'highcharts',
12 silly mapToRegistry rawSpec: '',
12 silly mapToRegistry spec: 'latest',
12 silly mapToRegistry type: 'tag' }
13 silly mapToRegistry uri http://registry.npmjs.org/highcharts
14 verbose request uri http://registry.npmjs.org/highcharts
15 verbose request no auth needed
16 info attempt registry request try #1 at 12:41:21
17 verbose request id d74d02bcea633b08
18 http request GET http://registry.npmjs.org/highcharts
19 http 200 http://registry.npmjs.org/highcharts
20 verbose bad json <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
20 verbose bad json
20 verbose bad json <html>
20 verbose bad json <head>
20 verbose bad json <meta name="robots" content="noindex,nofollow" />
20 verbose bad json <meta content="yes" name="apple-mobile-web-app-capable" />
20 verbose bad json <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
20 verbose bad json
20 verbose bad json <link rel="icon" type="image/vnd.microsoft.icon" href="img/favicon.ico"/> <link rel="shortcut icon" type="image/vnd.microsoft.icon" href="img/favicon.ico"/>
20 verbose bad json <link id="dynamicCSS" rel="stylesheet" type="text/css" href="/UserCheck/css/Blob_dynamic_css" />
20 verbose bad json <link id="staticCSS" rel="stylesheet" type="text/css" href="/UserCheck/css/Blob_static.css" />
20 verbose bad json
20 verbose bad json
20 verbose bad json <script type="text/javascript">
20 verbose bad json //Create a dynamic element to allow sending of the document mode of IE.
20 verbose bad json //This way we can notify PHP that it can display modern content instead of classic, despite the browser's reporting of being IE7.
20 verbose bad json var headID = document.getElementsByTagName("head")[0];
20 verbose bad json var cssNode = document.createElement('link');
20 verbose bad json cssNode.type = 'text/css';
20 verbose bad json cssNode.rel = 'stylesheet';
20 verbose bad json cssNode.href = "/UserCheck/css/UserCheckCSS" + (document.documentMode !== undefined ? "?documentMode=" + document.documentMode : "");
20 verbose bad json headID.appendChild(cssNode);
20 verbose bad json
20 verbose bad json
20 verbose bad json /*
20 verbose bad json ========================================================================================================================
20 verbose bad json PORTAL IS - ESSENTIALS INCLUSION - START
20 verbose bad json ________________________________________________________________________________________________________________________
20 verbose bad json */
20 verbose bad json // Set global PORTAL_IS namespace.
20 verbose bad json window.PORTAL_IS = {};
20 verbose bad json
20 verbose bad json // Set namespace.
20 verbose bad json PORTAL_IS.CONF = {};
20 verbose bad json
20 verbose bad json PORTAL_IS.CONF.AJAX_REQ_TIMEOUT = 15000;
20 verbose bad json
20 verbose bad json // These properties describes the external references of the portal.
20 verbose bad json PORTAL_IS.CONF.MULTI_PORTALS = {};
20 verbose bad json PORTAL_IS.CONF.MULTI_PORTALS.EXTERNAL_PATH = "";
20 verbose bad json PORTAL_IS.CONF.MULTI_PORTALS.EXTERNAL_PORT = 443;
20 verbose bad json PORTAL_IS.CONF.MULTI_PORTALS.EXTERNAL_HOST = "192.168.0.0";
20 verbose bad json PORTAL_IS.CONF.MULTI_PORTALS.EXTERNAL_SCHEME = "https";
20 verbose bad json PORTAL_IS.CONF.MULTI_PORTALS.XSRF_TOKEN = "";
20 verbose bad json
20 verbose bad json // The current web application name.
20 verbose bad json PORTAL_IS.CONF.WEBAPP_NAME = "UserCheck";
20 verbose bad json
20 verbose bad json // Debug configurations
20 verbose bad json PORTAL_IS.CONF.MAX_STACK_SIZE = 1000;
20 verbose bad json PORTAL_IS.CONF.QUIET_MODE = "on".toLowerCase() == "on";
20 verbose bad json PORTAL_IS.CONF.DEBUG_LEVEL = 0;
20 verbose bad json
20 verbose bad json
20 verbose bad json // Set namespace.
20 verbose bad json window.PORTAL_IS.L10N = {}
20 verbose bad json
20 verbose bad json // Localization object.
20 verbose bad json //=============================================================================================
20 verbose bad json function __L10N()
20 verbose bad json {
20 verbose bad json this.strings = new Array();
20 verbose bad json this.browserLangs = new Array();
20 verbose bad json
20 verbose bad json this.init = function()
20 verbose bad json {
20 verbose bad json var obj = {"UC_TITLE":"Check Point UserCheck","UC_TITLE_MOBILE_DLP":"Check Point UserCheck Mobile DLP","BUTTON.OK":"OK","BUTTON.CANCEL":"Cancel","BUTTON.SEND":"Send","BUTTON.DISCARD":"Discard","BUTTON.APPROVE":"Approve","WRONG_ID":"This notification page has expired. You can safely close the page or ","TIMEOUT":"This notification page has expired. You can safely close the page or ","RETRY":"reload the original page.","REPORT_SUCCESS":"Report was sent successfully.","REPORT_ERROR":"An error occured while sending the report.","REQUIRED_FIELDS":"Required fields","ENTER_TEXT":"Enter text","RETURN_TO_SITE":"Return to site","UC.BLOCKED_IFRAME":"Learn more...","UC.INFO_IFRAME":"Click to resolve...","PLEASE_WAIT":"Please wait . . .","NO_SCRIPT":"This portal requires browser which support JavaScript.<br>Please make sure that you are using an updated browser and that JavaScript is enabled.","MSGBOX_TITLE_CONFIRMATION":"Confirmation","MSGBOX_TITLE_JUSTIFICATION":"Justification","MSGBOX_TITLE_APPROVER":"Approver","MSGBOX_TITLE_WARNING":"Warning","MSGBOX_TITLE_ATTENTION":"Attention","MSGBOX_TITLE_ERROR":"Error","MSGBOX_TITLE_REPORT_ERROR":"Report an error","MSGBOX_TITLE_EXTEND_EXPIRATION":"Extend expiration date","DEFAULT_GENERIC_CLIENT_ERROR":"An unexpected error has occurred.\nYou may still be able to continue working normally.\nPlease retry accessing the web page in a short while.\n\n","DEFAULT_GENERIC_TIMEOUT_CLIENT_ERROR":"You may not access this page, or this page has expired.\nPlease sign in.","LOG_REFERENCE_ID":"Log reference id: ","ERROR.LINK.SEND_ERROR_REPORT":"Send error report","ERROR.LINK.IM_HAVING_PROBLEMS":"I am having problems with this Portal.","CHECKPOINT_COPY_RIGHTS":"&copy;2011 Check Point Software Technologies Ltd.","EMAIL_SENT":"The email has been sent","EMAIL_DISCARDED":"The email has been discarded","EMAIL_ALREADY_SENT":"The email has already been sent","EMAIL_ALREADY_DISCARDED":"The email has already been discarded","UNKOWN_INCIDENT_STATUS":"The incident status is unkown","REVIEW_TEXT":"Review issue in portal","MAIL.ITEM.ATTACHMENTS":"Attachments","HTTP_LEARNING":"To complete the operation, <b>please return to site and resend the information<\/b>, thanks.","HTTP_LEARNING_ERROR_MSG":"Sending the message cannot be approved,<\/br> please contact your system administrator.","HTTP_LEARNING_ERROR_TOOLTIP":"Sending the message cannot be approved, please contact your system administrator.","CP_SCRUB_WAIT_MESSAGE":"Please wait while loading files...","CP_SCRUB_RESULT_SUCCESS":"","CP_SCRUB_RESULT_FAILURE":"File structure may be corrupted","CP_SCRUB_RESULT_TIMEOUT":"","CP_SCRUB_RESULT_UNSUPPORTED_FILE":"File format is not supported","CP_SCRUB_RESULT_NOT_SCRUBBED":"","CP_SCRUB_RESULT_INTERNAL_ERROR":"","CP_SCRUB_RESULT_NO_VALID_CONTRACT":"","CP_SCRUB_RESULT_SKIPPED_BY_TE_CONFIDENCE":"","CP_SCRUB_RESULT_OUT_OF_MEMORY":"","CP_SCRUB_RESULT_DOCSEC_FILE":"File encrypted using Checkpoint's Document Security","CP_SCRUB_RESULT_ENCRYPTED_FILE":"contains encrypted data","CP_SCRUB_RESULT_SKIPPED_BY_SCRIPT":"","CP_SCRUB_RESULT_DISK_LIMIT_REACHED":""};
20 verbose bad json
20 verbose bad json for(val in obj)
20 verbose bad json this.strings[val] = obj[val];
20 verbose bad json
20 verbose bad json obj = ["en"];
20 verbose bad json
20 verbose bad json for(val in obj)
20 verbose bad json {
20 verbose bad json this.browserLangs[val] = obj[val].split(';')[0];
20 verbose bad json }
20 verbose bad json }
20 verbose bad json
20 verbose bad json this.getStr = function(stringId)
20 verbose bad json {
20 verbose bad json return this.strings[stringId];
20 verbose bad json }
20 verbose bad json
20 verbose bad json this.selectLanguage = function(languageArray)
20 verbose bad json {
20 verbose bad json for(lang in this.browserLangs)
20 verbose bad json {
20 verbose bad json if(languageArray[this.browserLangs[lang]] === true)
20 verbose bad json return this.browserLangs[lang];
20 verbose bad json
20 verbose bad json if(languageArray[this.browserLangs[lang].substring(0, 2)] === true)
20 verbose bad json return this.browserLangs[lang].substring(0, 2);
20 verbose bad json }
20 verbose bad json
20 verbose bad json //If nothing succeeded, return the default.
20 verbose bad json return "en";
20 verbose bad json }
20 verbose bad json
20 verbose bad json this.reloadLanguageTo = function(lang, fallbackLang, callback)
20 verbose bad json {
20 verbose bad json var requestData = {};
20 verbose bad json
20 verbose bad json requestData.lang = lang;
20 verbose bad json requestData.fallbackLang = fallbackLang;
20 verbose bad json
20 verbose bad json var sAbsoluteURL = PORTAL_IS.TOOLS.getURL("data/GetTranslationData");
20 verbose bad json
20 verbose bad json sendAsynchronousRequest(sAbsoluteURL,
20 verbose bad json flattenObject(requestData),
20 verbose bad json this.asyncReloadLangHandler,
20 verbose bad json this,
20 verbose bad json [callback]);
20 verbose bad json }
20 verbose bad json
20 verbose bad json this.asyncReloadLangHandler = function(xhrStatus, xhrResponse, callback)
20 verbose bad json {
20 verbose bad json if (xhrStatus != 200)
20 verbose bad json {
20 verbose bad json DEBUG.out('Retreiving translation data failed. ('+xhrStatus+')', DEBUG.ERROR);
20 verbose bad json return;
20 verbose bad json }
20 verbose bad json
20 verbose bad json var obj = JSON.parse(xhrResponse);
20 verbose bad json this.strings = null; //Ensure removing of old values.
20 verbose bad json this.strings = new Array();
20 verbose bad json
20 verbose bad json for(val in obj)
20 verbose bad json this.strings[val] = obj[val];
20 verbose bad json
20 verbose bad json callback();
20 verbose bad json }
20 verbose bad json }
20 verbose bad json //=============================================================================================
20 verbose bad json
20 verbose bad json //Localization object.
20 verbose bad json L10N_Obj = new __L10N();
20 verbose bad json L10N_Obj.init();
20 verbose bad json PORTAL_IS.L10N.L10N_Obj = L10N_Obj;
20 verbose bad json
20 verbose bad json /*
20 verbose bad json ________________________________________________________________________________________________________________________
20 verbose bad json
20 verbose bad json PORTAL IS - ESSENTIALS INCLUSION - END
20 verbose bad json ========================================================================================================================
20 verbose bad json */
20 verbose bad json var noJSCrypto = "true";
20 verbose bad json </script>
20 verbose bad json <script type="text/javascript" src="js/Blob.js"></script>
20 verbose bad json <script type="text/javascript">
20 verbose bad json
20 verbose bad json
20 verbose bad json // Create namespace
20 verbose bad json window.UserCheck = {};
20 verbose bad json window.UserCheck.tools = {};
20 verbose bad json
20 verbose bad json // =======================================================================================
20 verbose bad json function parseSender(value)
20 verbose bad json {
20 verbose bad json return value.address;
20 verbose bad json }
20 verbose bad json // =======================================================================================
20 verbose bad json
20 verbose bad json
20 verbose bad json // =======================================================================================
20 verbose bad json // Render recipient list from and array.
20 verbose bad json // String[] recipientsArr - Array of recipients.
20 verbose bad json // [int ellipsisLimit] - A string beyond this length will be cut and added ellipsis. Optional, default is 0 - no ellipsis.
20 verbose bad json // [bool useLinebreakes] - Should a line break be added after each recipient. Optional, default is true.
20 verbose bad json function recipientsArr2StrInTable(recipientsArr, ellipsisLimit, useLinebreakes)
20 verbose bad json {
20 verbose bad json if (ellipsisLimit == undefined)
20 verbose bad json {
20 verbose bad json ellipsisLimit = 0;
20 verbose bad json }
20 verbose bad json
20 verbose bad json if (useLinebreakes == undefined)
20 verbose bad json {
20 verbose bad json useEllipsis = true;
20 verbose bad json }
20 verbose bad json
20 verbose bad json var recipientsList = "";
20 verbose bad json
20 verbose bad json for (var i=0; i<recipientsArr.length; i++)
20 verbose bad json {
20 verbose bad json recipientsList += HTMLEncode(recipientsArr[i].address);
20 verbose bad json if (i < recipientsArr.length-1)
20 verbose bad json {
20 verbose bad json recipientsList += ", ";
20 verbose bad json if (useLinebreakes)
20 verbose bad json {
20 verbose bad json recipientsList += "<br>";
20 verbose bad json }
20 verbose bad json }
20 verbose bad json }
20 verbose bad json
20 verbose bad json if (ellipsisLimit > 0)
20 verbose bad json {
20 verbose bad json //recipientsList = Ext.util.Format.ellipsis(recipientsList, ellipsisLimit);
20 verbose bad json recipientsList = recipientsList;
20 verbose bad json }
20 verbose bad json
20 verbose bad json return recipientsList;
20 verbose bad json }
20 verbose bad json // =======================================================================================
20 verbose bad json
20 verbose bad json
20 verbose bad json // =======================================================================================
20 verbose bad json // Render recipient list from and array.
20 verbose bad json // Sender sender - The sender data.
20 verbose bad json // [int ellipsisLimit] - A string beyond this length will be cut and added ellipsis. Optional, default is 0 - no ellipsis.
20 verbose bad json // [bool useLinebreakes] - Should a line break be added after each recipient. Optional, default is true.
20 verbose bad json function getSenderName(sender, ellipsisLimit)
20 verbose bad json {
20 verbose bad json var output = "";
20 verbose bad json
20 verbose bad json if (ellipsisLimit == undefined)
20 verbose bad json {
20 verbose bad json ellipsisLimit = 0;
20 verbose bad json }
20 verbose bad json
20 verbose bad json if (sender.name.empty())
20 verbose bad json {
20 verbose bad json output = sender.address;
20 verbose bad json }
20 verbose bad json else
20 verbose bad json {
20 verbose bad json output = sender.name;
20 verbose bad json }
20 verbose bad json
20 verbose bad json // if (ellipsisLimit > 0)
20 verbose bad json // {
20 verbose bad json // output = Ext.util.Format.ellipsis(output, ellipsisLimit);
20 verbose bad json // }
20 verbose bad json
20 verbose bad json return output;
20 verbose bad json }
20 verbose bad json // =======================================================================================
20 verbose bad json
20 verbose bad json
20 verbose bad json // =======================================================================================
20 verbose bad json // Render recipient list from and array.
20 verbose bad json // String sender - The subject string.
20 verbose bad json // [int ellipsisLimit] - A string beyond this length will be cut and added ellipsis. Optional, default is 0 - no ellipsis.
20 verbose bad json // [bool useLinebreakes] - Should a line break be added after each recipient. Optional, default is true.
20 verbose bad json function getSubject(subject, ellipsisLimit)
20 verbose bad json {
20 verbose bad json var output = subject;
20 verbose bad json
20 verbose bad json if (ellipsisLimit == undefined)
20 verbose bad json {
20 verbose bad json ellipsisLimit = 0;
20 verbose bad json }
20 verbose bad json
20 verbose bad json // if (ellipsisLimit > 0)
20 verbose bad json // {
20 verbose bad json // output = Ext.util.Format.ellipsis(output, ellipsisLimit);
20 verbose bad json // }
20 verbose bad json
20 verbose bad json return output;
20 verbose bad json }
20 verbose bad json // =======================================================================================
20 verbose bad json
20 verbose bad json
20 verbose bad json // =======================================================================================
20 verbose bad json // tranform recipients array to string
20 verbose bad json function recipientsArr2Str(recipientsArr,type)
20 verbose bad json {
20 verbose bad json var recipientsList = "";
20 verbose bad json var address = "";
20 verbose bad json var commaNeeded = false;
20 verbose bad json for (var i=0; i<recipientsArr.length; i++)
20 verbose bad json {
20 verbose bad json if (type == recipientsArr[i].recipientType)
20 verbose bad json {
20 verbose bad json if (!commaNeeded)
20 verbose bad json commaNeeded = true;
20 verbose bad json else
20 verbose bad json recipientsList += ", ";
20 verbose bad json
20 verbose bad json address = HTMLEncode(recipientsArr[i].address);
20 verbose bad json if (recipientsArr[i].isExternal)
20 verbose bad json {
20 verbose bad json address = '<span ' + GetDomainColor(recipientsArr[i].address)+' >' + address + '</span>'
20 verbose bad json }
20 verbose bad json recipientsList += address;
20 verbose bad json }
20 verbose bad json }
20 verbose bad json
20 verbose bad json return recipientsList;
20 verbose bad json }
20 verbose bad json
20 verbose bad json // =======================================================================================
20 verbose bad json function arr2Str(arr)
20 verbose bad json {
20 verbose bad json var str = "";
20 verbose bad json var commaNeeded = false;
20 verbose bad json for (var i=0; i<arr.length; i++)
20 verbose bad json {
20 verbose bad json if (!commaNeeded)
20 verbose bad json {
20 verbose bad json commaNeeded = true;
20 verbose bad json }
20 verbose bad json else
20 verbose bad json {
20 verbose bad json str += ", ";
20 verbose bad json }
20 verbose bad json str += arr[i];
20 verbose bad json }
20 verbose bad json
20 verbose bad json return str;
20 verbose bad json }
20 verbose bad json
20 verbose bad json function GetDomainColor(str)
20 verbose bad json {
20 verbose bad json // var highlightColors = new Array("FFFF00","00FF00","00FFFF","FF00FF","FF0000","FFFF99","99FF99","CCFFFF","FFCCFF", "FF9999")
20 verbose bad json var highlightColors = new Array("FFFF00","FF00FF","FF0000","FFBB00","FF9999");
20 verbose bad json domainName = GetDomainName(str);
20 verbose bad json if (domainName==null) return null;
20 verbose bad json
20 verbose bad json hash=0;
20 verbose bad json for (i=0; i<domainName.length; i++)
20 verbose bad json {
20 verbose bad json hash += domainName.charCodeAt(i);
20 verbose bad json }
20 verbose bad json hash = hash % (highlightColors.length);
20 verbose bad json return 'style="background-color: #' + highlightColors[hash] + '; text-decoration: underline;"';
20 verbose bad json }
20 verbose bad json
20 verbose bad json /*
20 verbose bad json // =======================================================================================
20 verbose bad json UserCheck.tools.clearContainer = function(containerId)
20 verbose bad json {
20 verbose bad json DEBUG.out("Clear container: "+containerId);
20 verbose bad json var container = Ext.getCmp(containerId);
20 verbose bad json if ((container) && (container.items))
20 verbose bad json {
20 verbose bad json container.items.each(
20 verbose bad json function(item)
20 verbose bad json {
20 verbose bad json container.remove(item, true);
20 verbose bad json }
20 verbose bad json );
20 verbose bad json }
20 verbose bad json }
20 verbose bad json // =======================================================================================
20 verbose bad json */
20 verbose bad json
20 verbose bad json // Override poral_is error handler.
20 verbose bad json //=============================================================================================
20 verbose bad json window.genericTimeoutHandler = function(portalException)
20 verbose bad json {
20 verbose bad json DEBUG.out("UserCheck::genericTimeoutHandler.");
20 verbose bad json
20 verbose bad json if ((portalException == undefined) || (portalException == null))
20 verbose bad json {
20 verbose bad json portalException = new PortalException();
20 verbose bad json }
20 verbose bad json
20 verbose bad json // Assign action to the Ok button.
20 verbose bad json // The event is added in order to get the exception, if it is set, that is set as the error message OK button attribute. see showPortalErrorMessage
20 verbose bad json postErrorHandler = function(event)
20 verbose bad json {
20 verbose bad json // Check if redirected due to timeout.
20 verbose bad json if (getCookie("isRedirectedDueTimeout") == "1")
20 verbose bad json {
20 verbose bad json // Delete the cookie to allow future errors.
20 verbose bad json setCookie("isRedirectedDueTimeout", "0", 0);
20 verbose bad json
20 verbose bad json // TODO: Redirect to error page.
20 verbose bad json return;
20 verbose bad json }
20 verbose bad json
20 verbose bad json // Set cookie in order to prevent error loops.
20 verbose bad json setCookie("isRedirectedDueTimeout", "1", 5*60);
20 verbose bad json
20 verbose bad json genericPostErrorHandler(event);
20 verbose bad json
20 verbose bad json // Reload the page.
20 verbose bad json document.location.href=document.location.href;
20 verbose bad json }
20 verbose bad json
20 verbose bad json // TODO: Get message from resource bundle.
20 verbose bad json //var errMsg = "Your session has expired or timed out.\nYou will be redirected to the login page.\n\n";
20 verbose bad json showPortalErrorMessage(portalException, postErrorHandler, true);
20 verbose bad json }
20 verbose bad json //=============================================================================================
20 verbose bad json
20 verbose bad json
20 verbose bad json
20 verbose bad json //=============================================================================================
20 verbose bad json window.genericErrorHandler = function(portalException, callback)
20 verbose bad json {
20 verbose bad json DEBUG.out("UserCheck::genericErrorHandler.");
20 verbose bad json if ((portalException == undefined) || (portalException == null))
20 verbose bad json {
20 verbose bad json portalException = new PortalException();
20 verbose bad json }
20 verbose bad json
20 verbose bad json if (isNothingness(callback))
20 verbose bad json {
20 verbose bad json callback = new Callback();
20 verbose bad json }
20 verbose bad json
20 verbose bad json // Assign action to the Ok button.
20 verbose bad json // The event is added in order to get the exception, if it is set, that is set as the error message OK button attribute. see showPortalErrorMessage
20 verbose bad json postErrorHandler = function(event)
20 verbose bad json {
20 verbose bad json genericPostErrorHandler(event);
20 verbose bad json callback.call();
20 verbose bad json // No reload of the page.
20 verbose bad json }
20 verbose bad json
20 verbose bad json showPortalErrorMessage(portalException, postErrorHandler, true);
20 verbose bad json return true; // This is required for the execption to stop from being passed to the browser.
20 verbose bad json }
20 verbose bad json //=============================================================================================
20 verbose bad json
20 verbose bad json
20 verbose bad json
20 verbose bad json //=============================================================================================
20 verbose bad json window.genericPostErrorHandler = function(event)
20 verbose bad json {
20 verbose bad json DEBUG.out("UserCheck::genericPostErrorHandler.");
20 verbose bad json // Just hide the error.
20 verbose bad json hidePortalErrorMessage();
20 verbose bad json }
20 verbose bad json //=============================================================================================
20 verbose bad json
20 verbose bad json //=============================================================================================
20 verbose bad json UserCheck.tools.sendErrorReport = function(userDesc, callback)
20 verbose bad json {
20 verbose bad json DEBUG.out("UserCheck.tools.sendErrorReport in.");
20 verbose bad json
20 verbose bad json var sAbsoluteURL = getURL("data/submitErrorReport");
20 verbose bad json var report = encodeURIComponent(DEBUG.compileErrorReport());
20 verbose bad json var userDesc = encodeURIComponent(userDesc);
20 verbose bad json
20 verbose bad json var sendErrorReportCallback = new Callback();
20 verbose bad json sendErrorReportCallback.methodReference = UserCheck.tools.handleErrorReportResponse;
20 verbose bad json sendErrorReportCallback.args.push(callback);
20 verbose bad json
20 verbose bad json // Send report with no error handlers.
20 verbose bad json PORTAL_IS.AJAX_MGR.sendAsyncReq(sAbsoluteURL, "report="+report+"&userDesc="+userDesc, sendErrorReportCallback, null, null, "Sending of error report failed.");
20 verbose bad json
20 verbose bad json // Set error flag.
20 verbose bad json PORTAL_IS.TOOLS.errorMsgShown = false;
20 verbose bad json }
20 verbose bad json //=============================================================================================
20 verbose bad json
20 verbose bad json //=============================================================================================
20 verbose bad json UserCheck.tools.handleErrorReportResponse = function(xhrStatus, xhrResponse, callback)
20 verbose bad json {
20 verbose bad json DEBUG.out("UserCheck.tools.handleErrorReportResponse in.");
20 verbose bad json
20 verbose bad json // Set error flag.
20 verbose bad json PORTAL_IS.TOOLS.errorMsgShown = false;
20 verbose bad json
20 verbose bad json if (isNothingness(callback))
20 verbose bad json {
20 verbose bad json callback = new Callback();
20 verbose bad json }
20 verbose bad json
20 verbose bad json if (xhrStatus != 200)
20 verbose bad json {
20 verbose bad json // TODO: Handle error.
20 verbose bad json DEBUG.out('Submitting error report failed. ('+xhrStatus+')', DEBUG.ERROR);
20 verbose bad json callback.call();
20 verbose bad json showPortalMessage("Sending of error report failed.");
20 verbose bad json return;
20 verbose bad json }
20 verbose bad json
20 verbose bad json callback.call();
20 verbose bad json
20 verbose bad json showPortalMessage("Error report was sent successfully.\nThank you for your support.", null, UserCheck.MESSAGE_TYPE.Confirmation);
20 verbose bad json }
20 verbose bad json //=============================================================================================
20 verbose bad json
20 verbose bad json //=============================================================================================
20 verbose bad json UserCheck.tools.showErrorReport = function(callback)
20 verbose bad json {
20 verbose bad json DEBUG.out("UserCheck.tools.showErrorReport in.");
20 verbose bad json
20 verbose bad json // Create new callback with send report and store previous callback in it.
20 verbose bad json submitCallback = new Callback();
20 verbose bad json submitCallback.methodReference = DEBUG.sendErrorReport;
20 verbose bad json submitCallback.args = [callback];
20 verbose bad json
20 verbose bad json // Create new callback for cancel.
20 verbose bad json cancelCallback = new Callback();
20 verbose bad json cancelCallback.methodReference = function()
20 verbose bad json {
20 verbose bad json // Clear error flag.
20 verbose bad json PORTAL_IS.TOOLS.errorMsgShown = false;
20 verbose bad json callback.call();
20 verbose bad json };
20 verbose bad json
20 verbose bad json // Hide any opened boxes.
20 verbose bad json PORTAL_IS.TOOLS.hideGeneralContainer();
20 verbose bad json PORTAL_IS.TOOLS.hideDialog();
20 verbose bad json hidePortalMessage();
20 verbose bad json hidePortalErrorMessage();
20 verbose bad json
20 verbose bad json PORTAL_IS.TOOLS.showDialog( "Please describe the encountered problem in the text box below.",
20 verbose bad json "NOTICE: The report might include personal information from your mail items.\nThe report will not include your credentials.",
20 verbose bad json "I was trying to (e.g. review an email):\n\nWork flow which led to this error (e.g. access via email link):\n\nI am unable to:",
20 verbose bad json "Report an error",
20 verbose bad json submitCallback, cancelCallback, null, null, null, null, true);
20 verbose bad json
20 verbose bad json // Set error flag.
20 verbose bad json PORTAL_IS.TOOLS.errorMsgShown = true;
20 verbose bad json }
20 verbose bad json //=============================================================================================
20 verbose bad json
20 verbose bad json
20 verbose bad json //=============================================================================================
20 verbose bad json
20 verbose bad json
20 verbose bad json //=============================================================================================
20 verbose bad json
20 verbose bad json DEBUG.showErrorReport = UserCheck.tools.showErrorReport;
20 verbose bad json DEBUG.sendErrorReport = UserCheck.tools.sendErrorReport;
20 verbose bad json
20 verbose bad json UserCheck.tools.oTimeoutManager =
20 verbose bad json {
20 verbose bad json timerID: -1,
20 verbose bad json startTimeoutTimer: function(duration, callback)
20 verbose bad json {
20 verbose bad json var milisecs = duration * 1000;
20 verbose bad json if (milisecs > 2147483646)
20 verbose bad json {
20 verbose bad json
20 verbose bad json milisecs = 2147483646;
20 verbose bad json
20 verbose bad json }
20 verbose bad json DEBUG.out("UserCheck.tools.TimeoutManager: Starting timer for " + duration + " seconds.");
20 verbose bad json window.TimeoutManagerCallback = callback;
20 verbose bad json this.timerID = setTimeout("this.TimeoutManagerCallback();", milisecs);
20 verbose bad json },
20 verbose bad json stopTimeoutTimer: function()
20 verbose bad json {
20 verbose bad json clearTimeout(timerID);
20 verbose bad json timerID = -1;
20 verbose bad json }
20 verbose bad json };
20 verbose bad json
20 verbose bad json UserCheck.DataObj = {};
20 verbose bad json
20 verbose bad json // TODO: This should be defined as an "interface" class and other view managers should implement it.
20 verbose bad json
20 verbose bad json // UC's view manager.
20 verbose bad json window.UCViewManager = function()
20 verbose bad json {
20 verbose bad json this.lastRenderedCustomContentContainers = new Array();
20 verbose bad json this.defaultContainer = 'portal_main_view';
20 verbose bad json this.ignoreHashChange = false;
20 verbose bad json this.wait = null;
20 verbose bad json this.requestParams = null;
20 verbose bad json
20 verbose bad json // Hash to view mapping, enables us to set display another value than the actual view name.
20 verbose bad json //==================================================================================================================
20 verbose bad json this.hashViewMap = new Array();
20 verbose bad json // Hash name View name
20 verbose bad json //__________________________________________________________________________________________________________________
20 verbose bad json this.hashViewMap["UserAction"] = "UserAction";
20 verbose bad json this.hashViewMap["MainWithMenuView"] = "MainWithMenuView";
20 verbose bad json this.hashViewMap["Menu"] = "Menu";
20 verbose bad json this.hashViewMap["Logout"] = "Logout";
20 verbose bad json this.hashViewMap["MainView"] = "MainView";
20 verbose bad json this.hashViewMap["Error"] = "Error";
20 verbose bad json
20 verbose bad json // Get View name from Hash name.
20 verbose bad json this.hash2View = function(hash)
20 verbose bad json {
20 verbose bad json var view = this.hashViewMap[hash];
20 verbose bad json
20 verbose bad json if (isNothingness(view))
20 verbose bad json {
20 verbose bad json view = "UserAction";
20 verbose bad json }
20 verbose bad json return view;
20 verbose bad json }
20 verbose bad json
20 verbose bad json // Get Hash name from View name.
20 verbose bad json this.view2Hash = function(view)
20 verbose bad json {
20 verbose bad json var hash = "UserAction";
20 verbose bad json for (key in this.hashViewMap)
20 verbose bad json {
20 verbose bad json if (this.hashViewMap[key] == view)
20 verbose bad json {
20 verbose bad json var hash = key;
20 verbose bad json }
20 verbose bad json }
20 verbose bad json return hash;
20 verbose bad json }
20 verbose bad json //==================================================================================================================
20 verbose bad json
20 verbose bad json // Initialize view manager.
20 verbose bad json //=============================================================================================
20 verbose bad json this.init = function()
20 verbose bad json {
20 verbose bad json DEBUG.out("UCViewManager::init");
20 verbose bad json
20 verbose bad json // Bind history change handler.
20 verbose bad json $(window).bind('hashchange', viewManager.handleHistoryChange);
20 verbose bad json
20 verbose bad json // Check address bar's hash and set desired view if exists.
20 verbose bad json var desiredView = this.parseHash().view;
20 verbose bad json if (isNothingness(desiredView))
20 verbose bad json {
20 verbose bad json desiredView = "";
20 verbose bad json }
20 verbose bad json
20 verbose bad json DEBUG.out("UCViewManager::init, desired view: [" + desiredView + "]");
20 verbose bad json this.gotoNextView(desiredView);
20 verbose bad json }
20 verbose bad json //=============================================================================================
20 verbose bad json
20 verbose bad json
20 verbose bad json
20 verbose bad json // Handle history changes (back/reload).
20 verbose bad json // Overriding default handling.
20 verbose bad json //=============================================================================================
20 verbose bad json this.handleHistoryChange = function(e, ui)
20 verbose bad json {
20 verbose bad json // In some cases the hash is changed and no view load is required, checking if so.
20 verbose bad json if (!viewManager.ignoreHashChange && ui != undefined)
20 verbose bad json {
20 verbose bad json // Parse view from hash.
20 verbose bad json var desiredView = viewManager.parseHash().view;
20 verbose bad json DEBUG.out("UCViewManager::handleHistoryChange, desired view:" + desiredView);
20 verbose bad json viewManager.gotoNextView(desiredView);
20 verbose bad json }
20 verbose bad json else
20 verbose bad json {
20 verbose bad json DEBUG.out("UCViewManager::handleHistoryChange, hash changed ignored.");
20 verbose bad json }
20 verbose bad json
20 verbose bad json // Reset the ignore flag.
20 verbose bad json viewManager.ignoreHashChange = false;
20 verbose bad json }
20 verbose bad json //=============================================================================================
20 verbose bad json
20 verbose bad json
20 verbose bad json // Queries the server for next desired view and than call for rendering it.
20 verbose bad json // Will call upon callback when done rendering the view.
20 verbose bad json //=============================================================================================
20 verbose bad json this.gotoNextView = function(requestedView, callback)
20 verbose bad json {
20 verbose bad json DEBUG.out("UCViewManager::gotoNextView");
20 verbose bad json
20 verbose bad json if (isNothingness(callback))
20 verbose bad json {
20 verbose bad json callback = new Callback();
20 verbose bad json }
20 verbose bad json
20 verbose bad json // Check what is the next view.
20 verbose bad json var sAbsoluteURL = PORTAL_IS.TOOLS.getURL("GetNextView");
20 verbose bad json var parameters = (isNothingness(requestedView)) ? ("") : ("requestedView=" + encodeURIComponent(requestedView));
20 verbose bad json
20 verbose bad json var gotoNextViewCallback = new Callback();
20 verbose bad json gotoNextViewCallback.methodReference = this.handleGotoNextViewRequest;
20 verbose bad json gotoNextViewCallback.thisArgument = this;
20 verbose bad json gotoNextViewCallback.args = [callback];
20 verbose bad json
20 verbose bad json PORTAL_IS.AJAX_MGR.sendAsyncReq(sAbsoluteURL, parameters, gotoNextViewCallback);
20 verbose bad json }
20 verbose bad json //=============================================================================================
20 verbose bad json
20 verbose bad json
20 verbose bad json // Handle next view query.
20 verbose bad json //=============================================================================================
20 verbose bad json this.handleGotoNextViewRequest = function(xhrStatus, xhrResponse, callback)
20 verbose bad json {
20 verbose bad json DEBUG.out("UCViewManager::handleGotoNextViewRequest");
20 verbose bad json
20 verbose bad json if (isNothingness(callback))
20 verbose bad json {
20 verbose bad json callback = new Callback();
20 verbose bad json }
20 verbose bad json
20 verbose bad json if (xhrStatus != 200)
20 verbose bad json {
20 verbose bad json DEBUG.out('Retreiving next view failed. ('+xhrStatus+')', DEBUG.ERROR);
20 verbose bad json callback.call();
20 verbose bad json return;
20 verbose bad json }
20 verbose bad json
20 verbose bad json var nextViewJSONObj = JSON.parse(xhrResponse);
20 verbose bad json var nextView = nextViewJSONObj.view;
20 verbose bad json DEBUG.out("UCViewManager::handleGotoNextViewRequest, next view:" + nextView);
20 verbose bad json
20 verbose bad json // Extract the data (request params) from hash and relay it onto next hash.
20 verbose bad json // As hash changing handler will be passed back to this method we set the Ignore flag to TRUE
20 verbose bad json // and call for the gotoView method.
20 verbose bad json viewManager.changeHash(nextView, viewManager.parseHash().data, true);
20 verbose bad json
20 verbose bad json viewManager.gotoView(nextView, callback);
20 verbose bad json }
20 verbose bad json //=============================================================================================
20 verbose bad json
20 verbose bad json
20 verbose bad json // Get view contents (CSS, JS and HTML).
20 verbose bad json // Will call upon callback when done rendering the view.
20 verbose bad json //=============================================================================================
20 verbose bad json this.gotoView = function(view, callback)
20 verbose bad json {
20 verbose bad json DEBUG.out("UCViewManager::gotoView view: ["+view+"]");
20 verbose bad json
20 verbose bad json if (callback == undefined)
20 verbose bad json {
20 verbose bad json callback = new Callback();
20 verbose bad json }
20 verbose bad json
20 verbose bad json var hash = this.parseHash().view;
20 verbose bad json var parameters = (hash == "") ? ("view="+encodeURIComponent(hash)) : ( "requestedView=" + encodeURIComponent(view) + "&view="+encodeURIComponent(hash) );
20 verbose bad json
20 verbose bad json sendAsynchronousRequest(PORTAL_IS.TOOLS.getURL("viewManager/GetViewData"),
20 verbose bad json parameters,
20 verbose bad json this.handleNewView,
20 verbose bad json this,
20 verbose bad json [callback]);
20 verbose bad json }
20 verbose bad json //=============================================================================================
20 verbose bad json
20 verbose bad json
20 verbose bad json // Handle new view rendering.
20 verbose bad json //=============================================================================================
20 verbose bad json this.handleNewView = function(xhrStatus, xhrResponse, callback)
20 verbose bad json {
20 verbose bad json if (callback == undefined)
20 verbose bad json {
20 verbose bad json callback = new Callback();
20 verbose bad json }
20 verbose bad json
20 verbose bad json if (xhrStatus != 200)
20 verbose bad json {
20 verbose bad json // TODO: Handle error.
20 verbose bad json DEBUG.out('Retreiving view failed. ('+xhrStatus+')', DEBUG.ERROR);
20 verbose bad json callback.call();
20 verbose bad json return;
20 verbose bad json }
20 verbose bad json
20 verbose bad json var newViewJSONObj = JSON.parse(xhrResponse);
20 verbose bad json var newView = newViewJSONObj.view;
20 verbose bad json DEBUG.out("UCViewManager::handleNewView, Parsed from JSON - view:" + newView);
20 verbose bad json
20 verbose bad json
20 verbose bad json var useDefaultContainerId = true;
20 verbose bad json var requiredContainerId = "";
20 verbose bad json var requiredView = "";
20 verbose bad json var requireSecureConnection = false;
20 verbose bad json
20 verbose bad json switch (newView)
20 verbose bad json {
20 verbose bad json default: // View will be rendered into main page view.
20 verbose bad json useDefaultContainerId = true;
20 verbose bad json requiredContainerId = this.defaultContainer;
20 verbose bad json break;
20 verbose bad json }
20 verbose bad json
20 verbose bad json // Check if in https, redirect if not.
20 verbose bad json if ((requireSecureConnection) && (location.protocol.toLowerCase() == 'http:'))
20 verbose bad json {
20 verbose bad json newLocation = location.href.replace(/http:/i, "https:");
20 verbose bad json location.href = newLocation;
20 verbose bad json return;
20 verbose bad json }
20 verbose bad json
20 verbose bad json var containerId = this.defaultContainer;
20 verbose bad json if (!useDefaultContainerId)
20 verbose bad json {
20 verbose bad json containerId = requiredContainerId;
20 verbose bad json }
20 verbose bad json
20 verbose bad json //var container = Ext.getCmp(containerId);
20 verbose bad json var container = document.getElementById(containerId);
20 verbose bad json
20 verbose bad json if (container != undefined)
20 verbose bad json {
20 verbose bad json
20 verbose bad json DEBUG.out('Render new view ('+newViewJSONObj.view+') into [' + (useDefaultContainerId ? "DefaultContainer" : requiredContainerId) + "].");
20 verbose bad json
20 verbose bad json // Render CSS. - Not needed, all CSS loads from one blob file.
20 verbose bad json //evaluateCSS(newViewJSONObj.css, "");
20 verbose bad json
20 verbose bad json // Clear existing content.
20 verbose bad json container.innerHTML = "";
20 verbose bad json
20 verbose bad json // If the html content is not empty, render it into a new pane.
20 verbose bad json container.innerHTML = newViewJSONObj.html;
20 verbose bad json
20 verbose bad json // Render JavaScript Content.
20 verbose bad json evaluateJavaScript(newViewJSONObj.javascript);
20 verbose bad json
20 verbose bad json }
20 verbose bad json else if (requiredContainerId == this.defaultContainer)
20 verbose bad json {
20 verbose bad json
20 verbose bad json DEBUG.out('Default view is missing and will be rendered...');
20 verbose bad json this.renderDefaultView();
20 verbose bad json this.handleNewView(xhrStatus, xhrResponse, callback);
20 verbose bad json
20 verbose bad json }
20 verbose bad json else // The container is not present and needs to be rendered first.
20 verbose bad json {
20 verbose bad json
20 verbose bad json DEBUG.out('Required view ('+requiredContainerId+') is missing and needs to be rendered first.');
20 verbose bad json
20 verbose bad json // Set the previous view results in a callback, it will be called when finished rendering of the login sequence page.
20 verbose bad json var requiredViewCallback = new Callback();
20 verbose bad json requiredViewCallback.methodReference = this.handleNewView;
20 verbose bad json requiredViewCallback.thisArgument = this;
20 verbose bad json requiredViewCallback.args = [200, xhrResponse]; // Set fake status and response.
20 verbose bad json
20 verbose bad json // Request specific view.
20 verbose bad json this.gotoView(requiredView, requiredViewCallback);
20 verbose bad json
20 verbose bad json }
20 verbose bad json
20 verbose bad json // TODO: detect loops.
20 verbose bad json
20 verbose bad json
20 verbose bad json // Done here, call the callback.
20 verbose bad json //this.wait.hide();
20 verbose bad json callback.call();
20 verbose bad json }
20 verbose bad json //=============================================================================================
20 verbose bad json
20 verbose bad json
20 verbose bad json
20 verbose bad json
20 verbose bad json
20 verbose bad json
20 verbose bad json // CUSTOM CONTENT RELATED METHODS
20 verbose bad json // _________________________________________________________________________________________________________________
20 verbose bad json
20 verbose bad json // Get the view's custom Content.
20 verbose bad json //=============================================================================================
20 verbose bad json this.getViewCustomContent = function(view)
20 verbose bad json {
20 verbose bad json this.clearLastCustomContent();
20 verbose bad json
20 verbose bad json var sAbsoluteURL = PORTAL_IS.TOOLS.getURL("JSONViewData/GetViewCustomContent");
20 verbose bad json sendAsynchronousRequest(sAbsoluteURL,
20 verbose bad json "view="+view,
20 verbose bad json this.renderCustomContent,
20 verbose bad json this,
20 verbose bad json []);
20 verbose bad json }
20 verbose bad json //=============================================================================================
20 verbose bad json
20 verbose bad json
20 verbose bad json // Render the custom content.
20 verbose bad json //=============================================================================================
20 verbose bad json this.renderCustomContent = function(xhrStatus, xhrResponse, callbackObj)
20 verbose bad json {
20 verbose bad json DEBUG.out('Render custom content.');
20 verbose bad json callback = new Callback(callbackObj);
20 verbose bad json
20 verbose bad json if (xhrStatus != 200)
20 verbose bad json {
20 verbose bad json // TODO: Handle error.
20 verbose bad json DEBUG.out('Retreiving custom content failed. ('+xhrStatus+')', DEBUG.ERROR);
20 verbose bad json callback.call();
20 verbose bad json return;
20 verbose bad json }
20 verbose bad json
20 verbose bad json // The container Id is: "CustomContent_<VIEW NAME>_<RESOURCE KEY>".
20 verbose bad json // For example: the "ISW" view and the resource key of "top" will be rendered into "CustomContent_ISW_top".
20 verbose bad json
20 verbose bad json var newCustomContentJSONObj = JSON.parse(xhrResponse);
20 verbose bad json var keyArr = newCustomContentJSONObj.keyArr;
20 verbose bad json var view = newCustomContentJSONObj.view
20 verbose bad json
20 verbose bad json // Override view.
20 verbose bad json switch (view)
20 verbose bad json {
20 verbose bad json case "ICS": // No brake, group these views.
20 verbose bad json case "Authentication":
20 verbose bad json case "ISW":
20 verbose bad json case "MultiChallenge":
20 verbose bad json case "IswEntry":
20 verbose bad json var usedView = "LoginSequencePage";
20 verbose bad json break;
20 verbose bad json
20 verbose bad json default:
20 verbose bad json var usedView = view;
20 verbose bad json break;
20 verbose bad json }
20 verbose bad json
20 verbose bad json // Iterate on each of the custom content object.
20 verbose bad json var customContent, containerId, key;
20 verbose bad json //for (var key in keyMap)
20 verbose bad json for (var i=0; i<keyArr.length; i++)
20 verbose bad json {
20 verbose bad json key = keyArr[i][0];
20 verbose bad json customContent = keyArr[i][1];
20 verbose bad json containerId = "CustomContent_"+usedView+"_"+key;
20 verbose bad json DEBUG.out('Render custom content: usedView:['+usedView+"] into:["+containerId+"]");
20 verbose bad json this.evaluateCustomContent(customContent, containerId);
20 verbose bad json this.lastRenderedCustomContentContainers.push(containerId);
20 verbose bad json }
20 verbose bad json
20 verbose bad json // Call the callback.
20 verbose bad json callback.call();
20 verbose bad json }
20 verbose bad json
20 verbose bad json // Encapsulate conditional rendering of the custom content.
20 verbose bad json this.evaluateCustomContent = function(customContent, containerId)
20 verbose bad json {
20 verbose bad json destinationRef = document.getElementById(containerId);
20 verbose bad json if ( (destinationRef != null) && (destinationRef != undefined) )
20 verbose bad json {
20 verbose bad json evaluateHTMLContent(customContent, destinationRef);
20 verbose bad json }
20 verbose bad json }
20 verbose bad json //=============================================================================================
20 verbose bad json
20 verbose bad json
20 verbose bad json // Clear last rendered containers.
20 verbose bad json //=============================================================================================
20 verbose bad json this.clearLastCustomContent = function()
20 verbose bad json {
20 verbose bad json for (var containerIndex in this.lastRenderedCustomContentContainers)
20 verbose bad json {
20 verbose bad json this.evaluateCustomContent("&nbsp;", this.lastRenderedCustomContentContainers[containerIndex]);
20 verbose bad json }
20 verbose bad json
20 verbose bad json this.lastRenderedCustomContentContainers = new Array();
20 verbose bad json }
20 verbose bad json //=============================================================================================
20 verbose bad json
20 verbose bad json // Render default view.
20 verbose bad json //=============================================================================================
20 verbose bad json this.renderDefaultView = function()
20 verbose bad json {}
20 verbose bad json //==================================================================================================================
20 verbose bad json
20 verbose bad json //==================================================================================================================
20 verbose bad json this.logoutButtonHandler = function()
20 verbose bad json {}
20 verbose bad json //==================================================================================================================
20 verbose bad json
20 verbose bad json
20 verbose bad json
20 verbose bad json
20 verbose bad json
20 verbose bad json // DEPRECATED METHODS
20 verbose bad json // _________________________________________________________________________________________________________________
20 verbose bad json
20 verbose bad json // DEPRECATED, use viewManager.gotoNextView instead.
20 verbose bad json //==================================================================================================================
20 verbose bad json this.gotoNextState = function(callback)
20 verbose bad json {
20 verbose bad json this.gotoNextView(null, callback);
20 verbose bad json return;
20 verbose bad json }
20 verbose bad json //==================================================================================================================
20 verbose bad json }
20 verbose bad json
20 verbose bad json // Extend ViewManager (Portal IS).
20 verbose bad json UCViewManager.prototype = new ViewManager();
20 verbose bad json window.viewManager = new UCViewManager();
20 verbose bad json
20 verbose bad json </script>
20 verbose bad json
20 verbose bad json <title>Check Point UserCheck</title>
20 verbose bad json </head>
20 verbose bad json
20 verbose bad json <body class="usercheck_body_background_class" unselectable="on">
20 verbose bad json <noscript>
20 verbose bad json This portal requires browser which support JavaScript.<br>Please make sure that you are using an updated browser and that JavaScript is enabled. </noscript>
20 verbose bad json <div id='portalErrorMessage' class="portalErrorMessageDivHide">
20 verbose bad json
20 verbose bad json <table cellpadding="0px" cellspacing="0px" class="portalErrorMessageTableContainer" width="100%">
20 verbose bad json <tr>
20 verbose bad json <td align="center">
20 verbose bad json
20 verbose bad json <table cellpadding="0px" cellspacing="0px" class="portalErrorMessageTable">
20 verbose bad json
20 verbose bad json <tr id="portalErrorMessage_title_container_row" class="portalMessage_title show" width="100%">
20 verbose bad json <td id="portalErrorMessage_title_container" height="10px" valign="middle" align="left" colspan="2">&nbsp;</td>
20 verbose bad json </tr>
20 verbose bad json
20 verbose bad json <tr>
20 verbose bad json <td id="portalErrorMessage_container" align="left" style="padding: 10px;" colspan="2">&nbsp;</td>
20 verbose bad json </tr>
20 verbose bad json
20 verbose bad json <tr>
20 verbose bad json
20 verbose bad json <td>
20 verbose bad json <table cellpadding="0px" cellspacing="0px" width="100%"style=" padding: 10px;">
20 verbose bad json <tr>
20 verbose bad json <td id="portalMessage_error_report_container" align="left" valign="buttom" class="hide">
20 verbose bad json <span id="portalMessage_error_report_link" onclick="DEBUG.showErrorReport();" class="portal_link" style="left: 10px;">
20 verbose bad json Send error report </span>
20 verbose bad json </td>
20 verbose bad json <td id="portalMessage_error_button_container" align="right" height="10px;" valign="buttom">
20 verbose bad json <button id="portalErrorMessage_button" class="portalErrorMessage_button" onclick="hidePortalErrorMessage();">
20 verbose bad json OK </button>
20 verbose bad json </td>
20 verbose bad json </tr>
20 verbose bad json </table>
20 verbose bad json </td>
20 verbose bad json
20 verbose bad json </tr>
20 verbose bad json
20 verbose bad json </table>
20 verbose bad json
20 verbose bad json </td>
20 verbose bad json </tr>
20 verbose bad json </table>
20 verbose bad json
20 verbose bad json </div>
20 verbose bad json
20 verbose bad json
20 verbose bad json <div id='portalMessage' class="portalMessageDivHide">
20 verbose bad json
20 verbose bad json <table cellpadding="0px" cellspacing="0px" class="portalMessageTableContainer" width="100%">
20 verbose bad json <tr>
20 verbose bad json <td align="center">
20 verbose bad json
20 verbose bad json <table cellpadding="0px" cellspacing="0px" class="portalMessageTable">
20 verbose bad json
20 verbose bad json <tr id="portalMessage_title_container_row" class="portalMessage_title show">
20 verbose bad json <td id="portalMessage_title_container" class="portalMessage_title_td" valign="middle" align="left">
20 verbose bad json &nbsp;
20 verbose bad json </td>
20 verbose bad json </tr>
20 verbose bad json
20 verbose bad json <tr>
20 verbose bad json <td id="portalMessage_container" align="left" style="padding: 10px;">
20 verbose bad json &nbsp;
20 verbose bad json </td>
20 verbose bad json </tr>
20 verbose bad json
20 verbose bad json <tr id="portalMessage_textarea_container_row" class="hide">
20 verbose bad json <td id="portalMessage_textarea_container" align="left" style="padding: 10px;">
20 verbose bad json </td>
20 verbose bad json </tr>
20 verbose bad json
20 verbose bad json <tr id="portalMessage_validation_message_container_row" class="show">
20 verbose bad json <td id="portalMessage_validation_message_container" align="left" class="portalMessage_validation_submessage" style="padding: 10px;">
20 verbose bad json &nbsp;
20 verbose bad json </td>
20 verbose bad json </tr>
20 verbose bad json
20 verbose bad json <tr id="portalMessage_submessage_container_row" class="hide">
20 verbose bad json <td id="portalMessage_submessage_container" align="left" class="portalMessage_submessage" style="padding: 10px;">
20 verbose bad json &nbsp;
20 verbose bad json </td>
20 verbose bad json </tr>
20 verbose bad json
20 verbose bad json <tr>
20 verbose bad json <td align="center" height="10px;" valign="buttom" style="padding: 10px;" colspan="2">
20 verbose bad json <div id="portalMessage_ok_button_container" class="show" style="text-align: right;">
20 verbose bad json <button id="portalMessage_button" class="portalMessage_button" onclick="hidePortalMessage();">
20 verbose bad json OK </button>
20 verbose bad json </div>
20 verbose bad json
20 verbose bad json <div id="portalMessage_bool_button_container" class="hide">
20 verbose bad json <button id="portalMessage_yes_button" class="portalMessage_button" onclick="hidePortalMessage();">
20 verbose bad json BUTTON.YES </button>
20 verbose bad json &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
20 verbose bad json <button id="portalMessage_no_button" class="portalMessage_button" onclick="hidePortalMessage();">
20 verbose bad json BUTTON.NO </button>
20 verbose bad json </div>
20 verbose bad json
20 verbose bad json <div id="portalMessage_submit_button_container" class="hide">
20 verbose bad json <button id="portalMessage_submit_button" class="portalMessage_button" onclick="hidePortalMessage();">
20 verbose bad json BUTTON.SUBMIT </button>
20 verbose bad json &nbsp;&nbsp;&nbsp;
20 verbose bad json <button id="portalMessage_cancel_button" class="portalMessage_button" onclick="hidePortalMessage();">
20 verbose bad json Cancel </button>
20 verbose bad json </div>
20 verbose bad json </td>
20 verbose bad json </tr>
20 verbose bad json </table>
20 verbose bad json
20 verbose bad json </td>
20 verbose bad json </tr>
20 verbose bad json </table>
20 verbose bad json
20 verbose bad json </div>
20 verbose bad json
20 verbose bad json
20 verbose bad json <div id='portalGeneralContainer' class="portalMessageDivHide">
20 verbose bad json
20 verbose bad json <table cellpadding="0px" cellspacing="0px" class="portalMessageTableContainer" width="100%">
20 verbose bad json <tr>
20 verbose bad json <td align="center">
20 verbose bad json
20 verbose bad json <table cellpadding="0px" cellspacing="0px" class="portalMessageTable">
20 verbose bad json
20 verbose bad json <tr id="portalGeneralContainer_title_container_row" class="portalMessage_title show" width="100%">
20 verbose bad json <td id="portalGeneralContainer_title_container" height="10px" valign="middle" align="left">
20 verbose bad json &nbsp;
20 verbose bad json </td>
20 verbose bad json </tr>
20 verbose bad json
20 verbose bad json <tr>
20 verbose bad json <td id="portalGeneralContainer_container" align="left" style="padding: 10px;">
20 verbose bad json &nbsp;
20 verbose bad json </td>
20 verbose bad json </tr>
20 verbose bad json
20 verbose bad json </table>
20 verbose bad json
20 verbose bad json </td>
20 verbose bad json </tr>
20 verbose bad json </table>
20 verbose bad json
20 verbose bad json </div>
20 verbose bad json
20 verbose bad json
20 verbose bad json <div id='PortalErrorScreenShader' class="screenShaderHide">
20 verbose bad json <table cellpadding="0px" cellspacing="0px" width="100%" height="100%">
20 verbose bad json <tr>
20 verbose bad json <td>&nbsp;</td>
20 verbose bad json </tr>
20 verbose bad json </table>
20 verbose bad json </div>
20 verbose bad json
20 verbose bad json
20 verbose bad json
20 verbose bad json <div id='PortalScreenShader' class="screenShaderHide">
20 verbose bad json <table cellpadding="0px" cellspacing="0px" width="100%" height="100%">
20 verbose bad json <tr>
20 verbose bad json <td>&nbsp;</td>
20 verbose bad json </tr>
20 verbose bad json </table>
20 verbose bad json </div>
20 verbose bad json
20 verbose bad json
20 verbose bad json <div id="portal_main_view" class="div_expanded" unselectable="on">
20 verbose bad json <table height="100%" width="100%" border="0" cellpadding="0" cellspacing="0" class="">
20 verbose bad json <tr>
20 verbose bad json <td id="portal_center_div" valign="top" unselectable="on" class="usercheck_main_background_class">
20 verbose bad json <div id="portal_top_pane_div" class="usercheck_header_class">
20 verbose bad json
20 verbose bad json <!--position: fixed; bottom: -1px; left: 50%; margin-left: -435px; -->
20 verbose bad json
20 verbose bad json <table width="100%" cellpadding="0" cellspacing="0" class="usercheck_header_table_class usercheck_content_table_class">
20 verbose bad json <tr>
20 verbose bad json <td class="usercheck_header_left_class" unselectable="on">
20 verbose bad json </td>
20 verbose bad json <td class="usercheck_header_center_class" unselectable="on">
20 verbose bad json <div class="usercheck_page_title_class" id="usercheck_page_title" unselectable="on" >UserCheck</div>
20 verbose bad json </td>
20 verbose bad json <td id="usercheck_header_right_logo" class="usercheck_header_right_class" unselectable="on">
20 verbose bad json <img class="usercheck_company_logo_class" id="usercheck_company_logo" ></img>
20 verbose bad json </td>
20 verbose bad json <td id="usercheck_header_right_empty" class="usercheck_header_right_empty_class" unselectable="on">
20 verbose bad json </td>
20 verbose bad json </tr>
20 verbose bad json </table>
20 verbose bad json </div>
20 verbose bad json <div style="">&nbsp;</div><div style="">&nbsp;</div><div style="">&nbsp;</div>
20 verbose bad json <div style="text-align: center;" unselectable="on">
20 verbose bad json <table id="usercheck_content_table" cellpadding="0" cellspacing="0" class="usercheck_content_table_class">
20 verbose bad json <tr>
20 verbose bad json <td rowspan="3" valign="top" class="usercheck_message_icon_column"><div class="usercheck_message_icon_class" id="usercheck_img_div" unselectable="on">&nbsp;</div></td>
20 verbose bad json <td><div id="usercheck_title_div" class="usercheck_title_class" unselectable="on">&nbsp;</div></td>
20 verbose bad json </tr>
20 verbose bad json <tr>
20 verbose bad json <td><div id="usercheck_main_div" class="usercheck_message_class" unselectable="on">&nbsp;</div></td>
20 verbose bad json </tr>
20 verbose bad json <tr>
20 verbose bad json <td><div id="usercheck_error_div" unselectable="on">&nbsp;</div></td>
20 verbose bad json </tr>
20 verbose bad json <tr>
20 verbose bad json <td colspan="2" style="text-align: center;" unselectable="on">
20 verbose bad json <table style="margin-right: -10px; width: 50%; float: right;"><tr><td>
20 verbose bad json <center>
20 verbose bad json <div id="usercheck_cancel_div" class="usercheck_ok_button_div_class">&nbsp;</div>
20 verbose bad json </center>
20 verbose bad json </td><td>
20 verbose bad json <center>
20 verbose bad json <div id="usercheck_ok_div" class="usercheck_ok_button_div_class">&nbsp;</div>
20 verbose bad json </center>
20 verbose bad json </td></tr></table>
20 verbose bad json </td>
20 verbose bad json </tr>
20 verbose bad json </table></div>
20 verbose bad json </td>
20 verbose bad json </tr>
20 verbose bad json <tr>
20 verbose bad json <td id ="usercheck_footer_td" class="usercheck_footer_class usercheck_footer_height_class">
20 verbose bad json <div id="portal_bottom_pane_div">
20 verbose bad json
20 verbose bad json <!--position: fixed; bottom: -1px; left: 50%; margin-left: -435px; -->
20 verbose bad json
20 verbose bad json <table id="footer_table_logo" cellpadding="0" cellspacing="0" class="usercheck_footer_table_class footer_no_logo">
20 verbose bad json <tr>
20 verbose bad json <td class="usercheck_footer_height_class">
20 verbose bad json <div id="usercheck_language_selection_div" class="usercheck_lang_select_div_class" style="display: none;">
20 verbose bad json Language: <select id="usercheck_language_selection" class="usercheck_lang_select_class" onchange="javascript:window.oUserAction.handleLanguageChange();">
20 verbose bad json </select>
20 verbose bad json </div>
20 verbose bad json </td>
20 verbose bad json </tr>
20 verbose bad json </table> </div>
20 verbose bad json </td>
20 verbose bad json </tr>
20 verbose bad json </table>
20 verbose bad json </div>
20 verbose bad json </body>
20 verbose bad json
20 verbose bad json
20 verbose bad json <script type="text/javascript">
20 verbose bad json
20 verbose bad json //Continue the background image on IE6-7 graphics design.
20 verbose bad json if(window.browserDetails.browserType == window.BrowserType.IE && window.browserDetails.browserVersion <= 7 && (document.documentMode === undefined || document.documentMode <= 7))
20 verbose bad json {
20 verbose bad json var footer_td = document.getElementById('usercheck_footer_td');
20 verbose bad json footer_td.setAttribute("className", footer_td.getAttribute("className") + " usercheck_main_background_class");
20 verbose bad json }
20 verbose bad json
20 verbose bad json UserCheck.DataObj.IID = "6562BAB3-CB54-35B8-C19D-29D4AE36E696";
20 verbose bad json
20 verbose bad json UserCheck.DataObj.frame = 0;
20 verbose bad json
20 verbose bad json
20 verbose bad json /*this is a common object for PortalMain and PortalMainDlp. functions here should be empty */
20 verbose bad json window.UserActionCommon = function()
20 verbose bad json {
20 verbose bad json this.DlpHttpLearning = function(adminMessage,HttpLearningEnabled)
20 verbose bad json {
20 verbose bad json
20 verbose bad json }
20 verbose bad json this.DlpHideCancelBtn = function(action)
20 verbose bad json {
20 verbose bad json
20 verbose bad json }
20 verbose bad json }
20 verbose bad json
20 verbose bad json window.oUserActionCommon = new window.UserActionCommon();
20 verbose bad json
20 verbose bad json
20 verbose bad json var g_userID = "";
20 verbose bad json var g_refreshFiles = false;
20 verbose bad json
20 verbose bad json window.UserAction = function()
20 verbose bad json {
20 verbose bad json this.incidentObject = {};
20 verbose bad json this.textAreaText = "";
20 verbose bad json
20 verbose bad json this.getCorrectClass = function()
20 verbose bad json {
20 verbose bad json var correctClass = "class";
20 verbose bad json
20 verbose bad json //Choose the correct class attribute name (in IE6-7 we need "className" instead of "class") according to IE version - but check for compatibility first!
20 verbose bad json if(window.browserDetails.browserType == window.BrowserType.IE && window.browserDetails.browserVersion <= 7 && document.documentMode === undefined)
20 verbose bad json {
20 verbose bad json correctClass = "className";
20 verbose bad json }
20 verbose bad json
20 verbose bad json return correctClass;
20 verbose bad json }
20 verbose bad json
20 verbose bad json // Initialize.
20 verbose bad json //=============================================================================================
20 verbose bad json this.init = function(cancelPage)
20 verbose bad json {
20 verbose bad json if (typeof cancelPage == 'undefined')
20 verbose bad json {
20 verbose bad json cancelPage = false;
20 verbose bad json }
20 verbose bad json var requestData = {
20 verbose bad json IID: "-1",
20 verbose bad json UserID: "",
20 verbose bad json IsThinPortal: false,
20 verbose bad json UserLang: "",
20 verbose bad json GetCancelPage: cancelPage
20 verbose bad json };
20 verbose bad json
20 verbose bad json requestData.IID = UserCheck.DataObj.IID;
20 verbose bad json
20 verbose bad json var cookie = getCookie('UserCheck_UserID');
20 verbose bad json requestData.UserID = cookie != null ? cookie : "";
20 verbose bad json
20 verbose bad json requestData.IsThinPortal = window.isThinPortal === true ? true : false;
20 verbose bad json
20 verbose bad json var selectedLanguage = getCookie('UserCheck_Selected_Language');
20 verbose bad json if(selectedLanguage == null)
20 verbose bad json {
20 verbose bad json selectedLanguage = "";
20 verbose bad json }
20 verbose bad json requestData.UserLang = selectedLanguage;
20 verbose bad json
20 verbose bad json var sAbsoluteURL = PORTAL_IS.TOOLS.getURL("data/GetUserCheckIncidentData");
20 verbose bad json
20 verbose bad json if (window.isThinPortal === true)
20 verbose bad json {
20 verbose bad json //Create a custom timeout handler for the thin portal.
20 verbose bad json PORTAL_IS.AJAX_MGR.customTimeoutHandler = function()
20 verbose bad json {
20 verbose bad json window.location = "about:blank";
20 verbose bad json }
20 verbose bad json }
20 verbose bad json
20 verbose bad json sendAsynchronousRequest(sAbsoluteURL,
20 verbose bad json flattenObject(requestData),
20 verbose bad json this.handleUserCheckIncidentData,
20 verbose bad json this,
20 verbose bad json [new Callback()]);
20 verbose bad json }
20 verbose bad json
20 verbose bad json //Toggles the button's state from enabled to disabled and vice versa.
20 verbose bad json this.setButtonMode = function(buttonState, buttonID)
20 verbose bad json {
20 verbose bad json var button = document.getElementById(buttonID);
20 verbose bad json if(button == null)
20 verbose bad json return;
20 verbose bad json
20 verbose bad json var correctClass = window.oUserAction.getCorrectClass();
20 verbose bad json
20 verbose bad json if(buttonState)
20 verbose bad json {
20 verbose bad json //Enable the button.
20 verbose bad json button.setAttribute(correctClass, "button");
20 verbose bad json button.onclick = function(){ javascript:oUserAction.submitOK(); };
20 verbose bad json
20 verbose bad json button.style.cursor = "pointer";
20 verbose bad json }
20 verbose bad json else
20 verbose bad json {
20 verbose bad json //Disable the button.
20 verbose bad json button.setAttribute(correctClass, "button buttonDisabled");
20 verbose bad json button.onclick = null;
20 verbose bad json
20 verbose bad json button.style.cursor = "default";
20 verbose bad json }
20 verbose bad json }
20 verbose bad json
20 verbose bad json //Changes the button CSS class (support for IE6-8). buttonCLS is for additional classes to be added to the button.
20 verbose bad json this.setButtonState = function(state, buttonID, buttonCLS)
20 verbose bad json {
20 verbose bad json if (!buttonID)
20 verbose bad json {
20 verbose bad json buttonID = 'UserCheck_OK_Button';
20 verbose bad json buttonCLS = '';
20 verbose bad json }
20 verbose bad json
20 verbose bad json var correctClass = window.oUserAction.getCorrectClass();
20 verbose bad json
20 verbose bad json var button = document.getElementById(buttonID);
20 verbose bad json
20 verbose bad json if(button.getAttribute(correctClass).indexOf("Disabled") == -1)
20 verbose bad json {
20 verbose bad json //The button is not disabled.
20 verbose bad json button.setAttribute(correctClass, "button button" + state + " " + buttonCLS);
20 verbose bad json }
20 verbose bad json }
20 verbose bad json
20 verbose bad json this.handleUserCheckIncidentData = function(xhrStatus, xhrResponse, callback)
20 verbose bad json {
20 verbose bad json DEBUG.out("UserAction::handleUserCheckIncidentData");
20 verbose bad json
20 verbose bad json if (callback == undefined)
20 verbose bad json {
20 verbose bad json callback = new Callback();
20 verbose bad json }
20 verbose bad json
20 verbose bad json if (xhrStatus != 200)
20 verbose bad json {
20 verbose bad json DEBUG.out('Retreiving UserCheck Incident Data failed. ('+xhrStatus+')', DEBUG.ERROR);
20 verbose bad json callback.call();
20 verbose bad json return;
20 verbose bad json }
20 verbose bad json
20 verbose bad json this.incidentObject = JSON.parse(xhrResponse);
20 verbose bad json var Languages = this.incidentObject.Languages;
20 verbose bad json var UserCheckLogoID = this.incidentObject.UserCheckLogoID;
20 verbose bad json var RedirectToAddr = this.incidentObject.RedirectToAddr;
20 verbose bad json var AutoRedirect = this.incidentObject.AutoRedirect;
20 verbose bad json var ExternalSystemURL = this.incidentObject.ExternalSystemURL;
20 verbose bad json var Action = this.incidentObject.Action;
20 verbose bad json var Variables = this.incidentObject.Variables;
20 verbose bad json
20 verbose bad json this.incidentObject.HasBeenCancelled = false;
20 verbose bad json
20 verbose bad json setCookie('UserCheck_UserID', this.incidentObject.UserID, 31556926);
20 verbose bad json
20 verbose bad json if (Variables['product'] != 'Threat Extraction')
20 verbose bad json {
20 verbose bad json if(AutoRedirect == true && RedirectToAddr != "")
20 verbose bad json {
20 verbose bad json if (window.isThinPortal === undefined)
20 verbose bad json {
20 verbose bad json //We have an address and auto redirect is true so redirect to that URL.
20 verbose bad json // if (RedirectToAddr.indexOf('http://') != 0)
20 verbose bad json if ((RedirectToAddr.indexOf('http://') != 0) &&(RedirectToAddr.indexOf('https://') != 0))
20 verbose bad json RedirectToAddr = "http://" + RedirectToAddr;
20 verbose bad json
20 verbose bad json window.location = RedirectToAddr;
20 verbose bad json }
20 verbose bad json else
20 verbose bad json window.location = "about:blank"; //No reason to redirect in the Thin Portal
20 verbose bad json }
20 verbose bad json }
20 verbose bad json else
20 verbose bad json {
20 verbose bad json if (Action == "SCRUB-SUCCESS")
20 verbose bad json {
20 verbose bad json // in scrub success page, if not mobile or thin, give more space for the list of original files names and info
20 verbose bad json if(window.browserDetails.isMobile() === false && window.isThinPortal === undefined)
20 verbose bad json {
20 verbose bad json var content_table = document.getElementById("usercheck_content_table");
20 verbose bad json if (content_table != null)
20 verbose bad json {
20 verbose bad json content_table.style.tableLayout="auto";
20 verbose bad json }
20 verbose bad json
20 verbose bad json var message_div = document.getElementById("usercheck_main_div");
20 verbose bad json if (message_div != null)
20 verbose bad json {
20 verbose bad json message_div.style.minWidth="auto";
20 verbose bad json message_div.style.maxWidth="700px";
20 verbose bad json message_div.style.whiteSpace="nowrap";
20 verbose bad json message_div.style.wordWrap="normal";
20 verbose bad json message_div.style.overflow="auto";
20 verbose bad json }
20 verbose bad json }
20 verbose bad json
20 verbose bad json var requestData = {
20 verbose bad json IID: "-1"
20 verbose bad json };
20 verbose bad json requestData.IID = UserCheck.DataObj.IID;
20 verbose bad json var sAbsoluteURL = PORTAL_IS.TOOLS.getURL("data/GetScrubFiles");
20 verbose bad json sendAsynchronousRequest(sAbsoluteURL,
20 verbose bad json flattenObject(requestData),
20 verbose bad json this.handleScrubbingFiles,
20 verbose bad json this,
20 verbose bad json [new Callback()]);
20 verbose bad json }
20 verbose bad json }
20 verbose bad json
20 verbose bad json if(ExternalSystemURL != "")
20 verbose bad json //We have an external system address so redirect to that URL.
20 verbose bad json // window.location = ExternalSystemURL + (this.incidentObject.ForwardParams == true ? "?IncidentID=" + UserCheck.DataObj.IID + "&UserID=" + this.incidentObject.UserID : "");
20 verbose bad json if (this.incidentObject.ForwardParams == true)
20 verbose bad json {
20 verbose bad json window.location = ExternalSystemURL + "?IncidentID=" + UserCheck.DataObj.IID + "&UserID=" + this.incidentObject.UserID;
20 verbose bad json }
20 verbose bad json else
20 verbose bad json {
20 verbose bad json window.location = ExternalSystemURL;
20 verbose bad json }
20 verbose bad json
20 verbose bad json
20 verbose bad json
20 verbose bad json this.prepareLanguageSelection();
20 verbose bad json
20 verbose bad json if(window.self !== window.top)
20 verbose bad json {
20 verbose bad json //We are inside a frame. Display small version of the portal and give link to a full version of the portal in new tab/window.
20 verbose bad json
20 verbose bad json var url = '<a href="' + window.location + "&frame=1" + '" target="_blank">';
20 verbose bad json if (Action == "SCRUB-SUCCESS")
20 verbose bad json {
20 verbose bad json Action = "INFORM";
20 verbose bad json }
20 verbose bad json url += draw_img_tag(getURL("img/" + Action.toLowerCase() + ".png")) + '&nbsp;&nbsp;';
20 verbose bad json url += Action == 'BLOCK' ? PORTAL_IS.L10N.L10N_Obj.getStr("UC.BLOCKED_IFRAME") : PORTAL_IS.L10N.L10N_Obj.getStr("UC.INFO_IFRAME");
20 verbose bad json url += '</a>';
20 verbose bad json
20 verbose bad json document.body.innerHTML = url;
20 verbose bad json document.body.style.backgroundImage = 'none';
20 verbose bad json document.body.style.textAlign = 'center';
20 verbose bad json document.body.style.verticalAlign = 'text-bottom';
20 verbose bad json }
20 verbose bad json
20 verbose bad json //Decide which footer to display according to the action type (for Block and Limit we display footer without CP logo).
20 verbose bad json if(window.isThinPortal === true)
20 verbose bad json {
20 verbose bad json var thin_table = document.getElementById('usercheck_thin_table');
20 verbose bad json if(thin_table != null && Action != 'BLOCK' && Action != 'LIMIT')
20 verbose bad json {
20 verbose bad json var correctClass = window.oUserAction.getCorrectClass();
20 verbose bad json
20 verbose bad json thin_table.setAttribute(correctClass, "usercheck_main_mobile_background_class with_logo");
20 verbose bad json }
20 verbose bad json }
20 verbose bad json else
20 verbose bad json {
20 verbose bad json var logo_footer = document.getElementById('footer_table_logo');
20 verbose bad json if(logo_footer != null && Action != 'BLOCK' && Action != 'LIMIT')
20 verbose bad json {
20 verbose bad json var correctClass = window.oUserAction.getCorrectClass();
20 verbose bad json
20 verbose bad json logo_footer.setAttribute(correctClass, "usercheck_footer_table_class footer_logo");
20 verbose bad json }
20 verbose bad json }
20 verbose bad json
20 verbose bad json g_userID = this.incidentObject.UserID;
20 verbose bad json
20 verbose bad json if (Action == "SCRUB-SUCCESS")
20 verbose bad json {
20 verbose bad json Action = "INFORM";
20 verbose bad json }
20 verbose bad json //Draw incident image according to the incident type
20 verbose bad json if(document.getElementById('usercheck_img_div') !== null)
20 verbose bad json document.getElementById('usercheck_img_div').innerHTML = draw_img_tag(getURL("img/" + Action.toLowerCase() + ".png"));
20 verbose bad json
20 verbose bad json if(this.incidentObject.IsLogoConfigured)
20 verbose bad json {
20 verbose bad json //The page has a logo defined in the GUI - load it.
20 verbose bad json
20 verbose bad json //Desktop header.
20 verbose bad json var header_right_logo = document.getElementById('usercheck_header_right_logo');
20 verbose bad json if(header_right_logo != null)
20 verbose bad json if(window.browserDetails.browserType == window.BrowserType.IE && window.browserDetails.browserVersion <= 7)
20 verbose bad json header_right_logo.style.display = "block";
20 verbose bad json else
20 verbose bad json header_right_logo.style.display = "table-cell";
20 verbose bad json
20 verbose bad json var header_right_empty = document.getElementById('usercheck_header_right_empty');
20 verbose bad json if(header_right_empty != null)
20 verbose bad json header_right_empty.style.display = "none";
20 verbose bad json
20 verbose bad json //Mobile header.
20 verbose bad json var mobile_header = document.getElementById('header_mobile_div');
20 verbose bad json if(mobile_header != null)
20 verbose bad json {
20 verbose bad json mobile_header.style.display = "block";
20 verbose bad json }
20 verbose bad json
20 verbose bad json //Company logo.
20 verbose bad json var company_logo = document.getElementById('usercheck_company_logo');
20 verbose bad json if(company_logo != null)
20 verbose bad json company_logo.src = getURL("images/interactions/" + UserCheckLogoID + ".png");
20 verbose bad json }
20 verbose bad json else if(window.isThinPortal === true)
20 verbose bad json {
20 verbose bad json //If there is no logo defined, display the default logo in the thin portal.
20 verbose bad json var company_logo = document.getElementById('usercheck_company_logo');
20 verbose bad json if(company_logo != null)
20 verbose bad json company_logo.src = getURL("img/cp_logo_mobile_thin.png");
20 verbose bad json }
20 verbose bad json
20 verbose bad json //Start the timeout manager.
20 verbose bad json UserCheck.tools.oTimeoutManager.startTimeoutTimer(this.incidentObject.Expiration - 15, this.handleTimeout);
20 verbose bad json
20 verbose bad json if (UserCheck.DataObj.GetSingleIncidentReview !== undefined && UserCheck.DataObj.GetSingleIncidentReview == 1)
20 verbose bad json {
20 verbose bad json window.singleIncident = new SingleIncident();
20 verbose bad json singleIncident.init();
20 verbose bad json }
20 verbose bad json
20 verbose bad json callback.call();
20 verbose bad json }
20 verbose bad json
20 verbose bad json this.submitOK = function()
20 verbose bad json {
20 verbose bad json //This function determines if it is OK to proceed with sending a response if all validation criteria are met.
20 verbose bad json
20 verbose bad json //If we are in a Block action in thin portal, just redirect to about:blank.
20 verbose bad json if (window.isThinPortal === true && window.oUserAction.incidentObject.Action === "BLOCK")
20 verbose bad json {
20 verbose bad json window.location = "about:blank";
20 verbose bad json }
20 verbose bad json
20 verbose bad json if(document.getElementById('UserCheck_Textual_Input') != null)
20 verbose bad json //Verify we have the real textarea!
20 verbose bad json if(document.getElementById('UserCheck_Textual_Input').value !== undefined)
20 verbose bad json //Unfocus the text-area.
20 verbose bad json document.getElementById('UserCheck_Textual_Input').blur();
20 verbose bad json
20 verbose bad json if(!window.oUserAction.highlightInput())
20 verbose bad json //There was some user input missing - don't continue.
20 verbose bad json return;
20 verbose bad json
20 verbose bad json var cookie = getCookie('UserCheck_UserID');
20 verbose bad json
20 verbose bad json var requestData = {};
20 verbose bad json
20 verbose bad json requestData.IID = "-1";
20 verbose bad json requestData.UserOption = "OK";
20 verbose bad json
20 verbose bad json requestData.UserID = cookie;
20 verbose bad json requestData.IsReasonExist = true;
20 verbose bad json if(document.getElementById('UserCheck_Textual_Input') != null)
20 verbose bad json {
20 verbose bad json var reason = document.getElementById('UserCheck_Textual_Input').value;
20 verbose bad json
20 verbose bad json //If the reason box is not found, there is nothing to enforce.
20 verbose bad json if(reason === undefined)
20 verbose bad json {
20 verbose bad json reason = "";
20 verbose bad json requestData.IsReasonExist = false;
20 verbose bad json }
20 verbose bad json else if(window.oUserAction.incidentObject.IsReasonEnforced === true && (reason.length == 0 || reason.length > 400))
20 verbose bad json return;
20 verbose bad json
20 verbose bad json requestData.Reason = reason;
20 verbose bad json }
20 verbose bad json else
20 verbose bad json {
20 verbose bad json requestData.IsReasonExist = false;
20 verbose bad json }
20 verbose bad json
20 verbose bad json //Sometimes the cookie is not written correctly, so used global user.
20 verbose bad json if(requestData.UserID == null || requestData.UserID == "")
20 verbose bad json requestData.UserID = g_userID;
20 verbose bad json
20 verbose bad json requestData.IID = UserCheck.DataObj.IID;
20 verbose bad json
20 verbose bad json var sAbsoluteURL = PORTAL_IS.TOOLS.getURL("data/GetUserCheckUserChoiceData");
20 verbose bad json
20 verbose bad json sendAsynchronousRequest(sAbsoluteURL,
20 verbose bad json flattenObject(requestData),
20 verbose bad json this.handleUserCheckChoiceData,
20 verbose bad json this,
20 verbose bad json [new Callback()]);
20 verbose bad json }
20 verbose bad json
20 verbose bad json this.submitCancel = function()
20 verbose bad json {
20 verbose bad json if(window.oUserAction.incidentObject.CancelURL !== undefined && window.oUserAction.incidentObject.CancelURL !== "")
20 verbose bad json {
20 verbose bad json window.location = window.oUserAction.incidentObject.CancelURL;
20 verbose bad json return;
20 verbose bad json }
20 verbose bad json else
20 verbose bad json {
20 verbose bad json if (window.isThinPortal == true)
20 verbose bad json {
20 verbose bad json window.location = "about:blank";
20 verbose bad json return;
20 verbose bad json }
20 verbose bad json this.init(true);
20 verbose bad json }
20 verbose bad json }
20 verbose bad json
20 verbose bad json this.handleUserCheckChoiceData = function(xhrStatus, xhrResponse, callback)
20 verbose bad json {
20 verbose bad json try
20 verbose bad json {
20 verbose bad json window.external.OKButtonClickedResponseReceived('Done handling request');
20 verbose bad json }
20 verbose bad json catch(err)
20 verbose bad json {
20 verbose bad json //do nothing, this is probably the fat client
20 verbose bad json }
20 verbose bad json
20 verbose bad json DEBUG.out("UserAction::handleUserCheckChoiceData");
20 verbose bad json
20 verbose bad json if (callback == undefined)
20 verbose bad json {
20 verbose bad json callback = new Callback();
20 verbose bad json }
20 verbose bad json
20 verbose bad json if (xhrStatus != 200)
20 verbose bad json {
20 verbose bad json DEBUG.out('Retreiving UserCheck Incident Data failed. ('+xhrStatus+')', DEBUG.ERROR);
20 verbose bad json callback.call();
20 verbose bad json return;
20 verbose bad json }
20 verbose bad json
20 verbose bad json var newViewJSONObj = JSON.parse(xhrResponse);
20 verbose bad json
20 verbose bad json var RedirectToAddr = newViewJSONObj.RedirectToAddr;
20 verbose bad json if (window.oUserAction.incidentObject.Variables['product'] != 'Threat Extraction')
20 verbose bad json {
20 verbose bad json if(RedirectToAddr != "")
20 verbose bad json {
20 verbose bad json var frame = "0";
20 verbose bad json
20 verbose bad json frame = UserCheck.DataObj.frame;
20 verbose bad json
20 verbose bad json if(typeof frame === "undefined" || frame == "0" || frame == "")
20 verbose bad json {
20 verbose bad json if (window.isThinPortal === undefined)
20 verbose bad json {
20 verbose bad json //We have an address so redirect to that URL.
20 verbose bad json if ((RedirectToAddr.indexOf('http://') != 0) &&(RedirectToAddr.indexOf('https://') != 0))
20 verbose bad json RedirectToAddr = "http://" + RedirectToAddr;
20 verbose bad json window.location = RedirectToAddr;
20 verbose bad json }
20 verbose bad json else
20 verbose bad json window.location = "about:blank";
20 verbose bad json }
20 verbose bad json else
20 verbose bad json {
20 verbose bad json if (window.isThinPortal === undefined)
20 verbose bad json {
20 verbose bad json //We have an address so redirect to that URL in the parent frame.
20 verbose bad json if ((RedirectToAddr.indexOf('http://') != 0) &&(RedirectToAddr.indexOf('https://') != 0))
20 verbose bad json RedirectToAddr = "http://" + RedirectToAddr;
20 verbose bad json
20 verbose bad json window.opener.location = RedirectToAddr;
20 verbose bad json }
20 verbose bad json else
20 verbose bad json {
20 verbose bad json window.opener.location = "about:blank";
20 verbose bad json }
20 verbose bad json window.close();
20 verbose bad json }
20 verbose bad json }
20 verbose bad json else
20 verbose bad json {
20 verbose bad json var frame = "0";
20 verbose bad json frame = UserCheck.DataObj.frame;
20 verbose bad json if(typeof frame === "undefined" || frame == "0" || frame == "")
20 verbose bad json {
20 verbose bad json if (window.isThinPortal == true)
20 verbose bad json {
20 verbose bad json window.location = "about:blank";
20 verbose bad json }
20 verbose bad json }
20 verbose bad json else
20 verbose bad json {
20 verbose bad json if (window.isThinPortal == true)
20 verbose bad json {
20 verbose bad json window.opener.location = "about:blank";
20 verbose bad json }
20 verbose bad json window.close();
20 verbose bad json }
20 verbose bad json }
20 verbose bad json }
20 verbose bad json else
20 verbose bad json {
20 verbose bad json window.location.reload();
20 verbose bad json }
20 verbose bad json }
20 verbose bad json this.handleUserReportWrongCategoryData = function(xhrStatus, xhrResponse, callback)
20 verbose bad json {
20 verbose bad json
20 verbose bad json DEBUG.out("UserAction::handleUserLogData");
20 verbose bad json
20 verbose bad json
20 verbose bad json
20 verbose bad json
20 verbose bad json }
20 verbose bad json
20 verbose bad json this.handleTimeout = function()
20 verbose bad json {
20 verbose bad json var requestData = {
20 verbose bad json IID: "-1"
20 verbose bad json };
20 verbose bad json
20 verbose bad json requestData.IID = UserCheck.DataObj.IID;
20 verbose bad json
20 verbose bad json var sAbsoluteURL = PORTAL_IS.TOOLS.getURL("ExtendTimeout");
20 verbose bad json
20 verbose bad json sendAsynchronousRequest(sAbsoluteURL,
20 verbose bad json flattenObject(requestData),
20 verbose bad json window.oUserAction.handleTimeoutExtension,
20 verbose bad json this,
20 verbose bad json [new Callback()]);
20 verbose bad json }
20 verbose bad json
20 verbose bad json this.handleTimeoutExtension = function(xhrStatus, xhrResponse, callback)
20 verbose bad json {
20 verbose bad json DEBUG.out("UserAction::handleTimeoutExtension");
20 verbose bad json
20 verbose bad json if (callback == undefined)
20 verbose bad json {
20 verbose bad json callback = new Callback();
20 verbose bad json }
20 verbose bad json
20 verbose bad json if (xhrStatus != 200)
20 verbose bad json {
20 verbose bad json if (window.isThinPortal === undefined)
20 verbose bad json {
20 verbose bad json DEBUG.out('Retreiving UserCheck Timeout Extension data failed. ('+xhrStatus+')', DEBUG.ERROR);
20 verbose bad json callback.call();
20 verbose bad json return;
20 verbose bad json }
20 verbose bad json else
20 verbose bad json {
20 verbose bad json window.location = "about:blank";
20 verbose bad json return;
20 verbose bad json }
20 verbose bad json }
20 verbose bad json var extensionObject = JSON.parse(xhrResponse);
20 verbose bad json
20 verbose bad json if(extensionObject.ReturnCode == "SUCCESS")
20 verbose bad json {
20 verbose bad json UserCheck.tools.oTimeoutManager.startTimeoutTimer(extensionObject.Expiration - 15, window.oUserAction.handleTimeout);
20 verbose bad json }
20 verbose bad json else
20 verbose bad json {
20 verbose bad json if(window.isThinPortal === undefined)
20 verbose bad json {
20 verbose bad json var button = document.getElementById('UserCheck_OK_Button');
20 verbose bad json if(button !=null)
20 verbose bad json button.style.display = "none";
20 verbose bad json var select = document.getElementById('usercheck_language_selection');
20 verbose bad json if(select != null)
20 verbose bad json select.disabled = true;
20 verbose bad json
20 verbose bad json showPortalMessage(PORTAL_IS.L10N.L10N_Obj.getStr("TIMEOUT") + " <a href='" + window.oUserAction.incidentObject.RedirectToAddr + "'>" + PORTAL_IS.L10N.L10N_Obj.getStr("RETRY") + "</a>", null, PORTAL_IS.MESSAGE_TYPE.Display, true);
20 verbose bad json }
20 verbose bad json else
20 verbose bad json {
20 verbose bad json /* If we are in thin portal, redirect to about:blank
20 verbose bad json so that client can catch it and act accordingly. */
20 verbose bad json window.location = "about:blank";
20 verbose bad json }
20 verbose bad json }
20 verbose bad json }
20 verbose bad json
20 verbose bad json //Prepare for language selection.
20 verbose bad json this.prepareLanguageSelection = function()
20 verbose bad json {
20 verbose bad json var Languages = this.incidentObject.Languages;
20 verbose bad json var prevSelectedLanguage = null;
20 verbose bad json var userSelected = false;
20 verbose bad json if (UserCheck.DataObj.Lang != "" && UserCheck.DataObj.Lang !== undefined)
20 verbose bad json {
20 verbose bad json prevSelectedLanguage = UserCheck.DataObj.Lang;
20 verbose bad json userSelected = true;
20 verbose bad json }
20 verbose bad json else if (this.incidentObject.PreferredLang != "")
20 verbose bad json {
20 verbose bad json prevSelectedLanguage = this.incidentObject.PreferredLang;
20 verbose bad json }
20 verbose bad json else
20 verbose bad json {
20 verbose bad json prevSelectedLanguage = getCookie('UserCheck_Selected_Language');
20 verbose bad json }
20 verbose bad json var count = 0;
20 verbose bad json
20 verbose bad json //If there is no cookie, get the browser locale.
20 verbose bad json if(prevSelectedLanguage == null)
20 verbose bad json {
20 verbose bad json var langArr = {};
20 verbose bad json for(var Language in Languages)
20 verbose bad json {
20 verbose bad json langArr[Languages[Language].LanguageCode] = true;
20 verbose bad json }
20 verbose bad json
20 verbose bad json prevSelectedLanguage = PORTAL_IS.L10N.L10N_Obj.selectLanguage(langArr);
20 verbose bad json }
20 verbose bad json
20 verbose bad json if(document.getElementById('usercheck_language_selection_div') != null)
20 verbose bad json {
20 verbose bad json count = 0;
20 verbose bad json for(var Language in Languages)
20 verbose bad json {
20 verbose bad json var select = document.getElementById('usercheck_language_selection');
20 verbose bad json select.options[select.options.length] = new Option(Languages[Language].Language, Language, false, Language === prevSelectedLanguage);
20 verbose bad json count++;
20 verbose bad json }
20 verbose bad json //Display language selection only if NOT in thin portal.
20 verbose bad json if(count > 1 && window.isThinPortal === undefined)
20 verbose bad json document.getElementById('usercheck_language_selection_div').style.display = "block";
20 verbose bad json
20 verbose bad json }
20 verbose bad json this.handleLanguageChange(true, userSelected);
20 verbose bad json }
20 verbose bad json
20 verbose bad json //Handles language change.
20 verbose bad json this.handleLanguageChange = function(noReloadLang, userSelected)
20 verbose bad json {
20 verbose bad json var select = document.getElementById('usercheck_language_selection');
20 verbose bad json var selectedLanguage = select.options[select.selectedIndex].value;
20 verbose bad json if(noReloadLang === true)
20 verbose bad json {
20 verbose bad json //No need to load the language - if it is already loaded.
20 verbose bad json this.asyncLanguageChangeCallback(userSelected);
20 verbose bad json }
20 verbose bad json else
20 verbose bad json {
20 verbose bad json //Reload language strings.
20 verbose bad json PORTAL_IS.L10N.L10N_Obj.reloadLanguageTo(selectedLanguage, "en", this.asyncLanguageChangeCallback);
20 verbose bad json }
20 verbose bad json
20 verbose bad json }
20 verbose bad json
20 verbose bad json this.checkBoxExists = function(adminMessage)
20 verbose bad json {
20 verbose bad json if(adminMessage.indexOf("UserCheck_Confirm_Checkbox") != -1)
20 verbose bad json return true;
20 verbose bad json
20 verbose bad json return false;
20 verbose bad json }
20 verbose bad json
20 verbose bad json this.textareaExists = function(adminMessage)
20 verbose bad json {
20 verbose bad json if(adminMessage.indexOf("UserCheck_Textual_Input") != -1)
20 verbose bad json return true;
20 verbose bad json
20 verbose bad json return false;
20 verbose bad json }
20 verbose bad json
20 verbose bad json this.asyncLanguageChangeCallback = function(userSelected)
20 verbose bad json {
20 verbose bad json if (userSelected === undefined)
20 verbose bad json {
20 verbose bad json userSelected = true;
20 verbose bad json }
20 verbose bad json var select = document.getElementById('usercheck_language_selection');
20 verbose bad json var check = document.getElementById('UserCheck_Confirm_Checkbox');
20 verbose bad json
20 verbose bad json var selectedLanguage = "Default";
20 verbose bad json if(select != null)
20 verbose bad json selectedLanguage = select.options[select.selectedIndex].value;
20 verbose bad json var checkBoxValue = check != null ? check.checked : false;
20 verbose bad json
20 verbose bad json //Save cookie for the selected language. Only if it is from a User Selection.
20 verbose bad json if (userSelected)
20 verbose bad json {
20 verbose bad json setCookie('UserCheck_Selected_Language', selectedLanguage == "Default" ? "en" : selectedLanguage, 31556926, "/");
20 verbose bad json var cookieVal = getCookie('UserCheck_UserID');
20 verbose bad json
20 verbose bad json var handleUpdateUserDataResponse = function(xhrStatus, xhrResponse, callback){
20 verbose bad json var newURL = window.location.href;
20 verbose bad json //alert("newURL '"+newURL+"'");
20 verbose bad json var langLoc = newURL.indexOf("&Lang=");
20 verbose bad json //alert("langLoc '"+langLoc+"'");
20 verbose bad json if (langLoc != -1)
20 verbose bad json {
20 verbose bad json newURL = newURL.substring(0, langLoc);
20 verbose bad json //alert("newURL '"+newURL+"'");
20 verbose bad json }
20 verbose bad json window.location = newURL;
20 verbose bad json }
20 verbose bad json
20 verbose bad json sendAsynchronousRequest(getURL("UpdateUserData"),
20 verbose bad json "Language="+encodeURIComponent(selectedLanguage) + "&IID="+encodeURIComponent(UserCheck.DataObj.IID)+"&UserID="+cookieVal,
20 verbose bad json handleUpdateUserDataResponse,
20 verbose bad json this,
20 verbose bad json [new Callback()]);
20 verbose bad json }
20 verbose bad json else
20 verbose bad json {
20 verbose bad json
20 verbose bad json //Keep this value globally for other funcs.
20 verbose bad json window.oUserAction.incidentObject.SelectedLanguage = selectedLanguage;
20 verbose bad json
20 verbose bad json var Languages = window.oUserAction.incidentObject.Languages;
20 verbose bad json var TitleText = Languages[selectedLanguage].TitleText;
20 verbose bad json var AdminMessage = Languages[selectedLanguage].AdminMessage;
20 verbose bad json var CancelMessage = Languages[selectedLanguage].CancelMessage;
20 verbose bad json var OKButtonMessage = window.oUserAction.incidentObject.OKButtonMessage[selectedLanguage];
20 verbose bad json var CancelButtonMessage = window.oUserAction.incidentObject.CancelButtonMessage[selectedLanguage];
20 verbose bad json var SendButtonMessage = window.oUserAction.incidentObject.SendButtonMessage[selectedLanguage];
20 verbose bad json var MiddleButtonMessage = window.oUserAction.incidentObject.MiddleButtonMessage[selectedLanguage];
20 verbose bad json var HTTPLearningEnabled = window.oUserAction.incidentObject.HTTPLearningEnabled;
20 verbose bad json var PageTitle = Languages[selectedLanguage].PageTitle;
20 verbose bad json
20 verbose bad json document.getElementById('usercheck_title_div').innerHTML = TitleText;
20 verbose bad json
20 verbose bad json if(window.oUserAction.incidentObject.HasBeenCancelled === undefined || window.oUserAction.incidentObject.HasBeenCancelled === false)
20 verbose bad json {
20 verbose bad json if (window.oUserAction.incidentObject.IncidentStatus == 0 || window.oUserAction.incidentObject.IncidentStatus == 2 || window.oUserAction.incidentObject.IncidentStatus == 8)//ok or cancel or ok_scrubbing
20 verbose bad json {
20 verbose bad json document.getElementById('usercheck_main_div').innerHTML = AdminMessage;
20 verbose bad json }
20 verbose bad json else if (window.oUserAction.incidentObject.IncidentStatus == 3)// sent
20 verbose bad json {
20 verbose bad json // if http learning is enabled on action succeded show the HTTP_LEARNING message
20 verbose bad json if (HTTPLearningEnabled == true && window.oUserAction.incidentObject.RedirectToAddr != "")
20 verbose bad json {
20 verbose bad json var usercheck_main_div = document.getElementById('usercheck_main_div')
20 verbose bad json if (usercheck_main_div != null)
20 verbose bad json usercheck_main_div.innerHTML = "<p>" +PORTAL_IS.L10N.L10N_Obj.getStr("HTTP_LEARNING")+"</p>";
20 verbose bad json }
20 verbose bad json else // an SMTP message
20 verbose bad json {
20 verbose bad json document.getElementById('usercheck_main_div').innerHTML = AdminMessage;
20 verbose bad json }
20 verbose bad json }
20 verbose bad json else if (window.oUserAction.incidentObject.IncidentStatus == 4)//discarded
20 verbose bad json {
20 verbose bad json document.getElementById('usercheck_main_div').innerHTML = AdminMessage;
20 verbose bad json }
20 verbose bad json else if (window.oUserAction.incidentObject.IncidentStatus == 5)//already sent
20 verbose bad json {
20 verbose bad json if (HTTPLearningEnabled == true && window.oUserAction.incidentObject.RedirectToAddr != "")
20 verbose bad json {
20 verbose bad json //if approved http and then refreshed the page
20 verbose bad json var usercheck_main_div = document.getElementById('usercheck_main_div')
20 verbose bad json if (usercheck_main_div != null)
20 verbose bad json usercheck_main_div.innerHTML = "<p>" +PORTAL_IS.L10N.L10N_Obj.getStr("HTTP_LEARNING")+"</p>";
20 verbose bad json }
20 verbose bad json else
20 verbose bad json {
20 verbose bad json document.getElementById('usercheck_main_div').innerHTML = AdminMessage;
20 verbose bad json var return_to_site_div = document.getElementById('usercheck_return_to_site_div')
20 verbose bad json if (return_to_site_div != null)
20 verbose bad json return_to_site_div.innerHTML = "<p style='color: #FF5000;font-weight: bold;'>" +PORTAL_IS.L10N.L10N_Obj.getStr("EMAIL_ALREADY_SENT") +"</p>";
20 verbose bad json }
20 verbose bad json }
20 verbose bad json else if (window.oUserAction.incidentObject.IncidentStatus == 6)//already discarded
20 verbose bad json {
20 verbose bad json document.getElementById('usercheck_main_div').innerHTML = AdminMessage;
20 verbose bad json var return_to_site_div = document.getElementById('usercheck_return_to_site_div')
20 verbose bad json if (return_to_site_div != null)
20 verbose bad json return_to_site_div.innerHTML = "<p style='color: #FF5000;font-weight: bold;'>" +PORTAL_IS.L10N.L10N_Obj.getStr("EMAIL_ALREADY_DISCARDED") +"</p>";
20 verbose bad json }
20 verbose bad json else
20 verbose bad json {
20 verbose bad json document.getElementById('usercheck_main_div').innerHTML = "<p>" + PORTAL_IS.L10N.L10N_Obj.getStr("UNKOWN_INCIDENT_STATUS") + "</p>" + window.oUserAction.incidentObject.IncidentStatus;
20 verbose bad json }
20 verbose bad json
20 verbose bad json
20 verbose bad json var btnDiv = document.getElementById('usercheck_ok_div');
20 verbose bad json if (btnDiv != null)
20 verbose bad json btnDiv.innerHTML = OKButtonMessage;
20 verbose bad json btnDiv = document.getElementById('usercheck_cancel_div');
20 verbose bad json if (btnDiv != null)
20 verbose bad json btnDiv.innerHTML = CancelButtonMessage;
20 verbose bad json btnDiv = document.getElementById('usercheck_send_div');
20 verbose bad json // show the send button on SMTP (which is actually the send button) OR show it on inform action (which is actually OK button)
20 verbose bad json if (btnDiv != null && (window.oUserAction.incidentObject.RedirectToAddr == "" || window.oUserAction.incidentObject.Action == "INFORM") )
20 verbose bad json {
20 verbose bad json // alert("setting usercheck_send_div");
20 verbose bad json btnDiv.innerHTML = SendButtonMessage;
20 verbose bad json }
20 verbose bad json btnDiv = document.getElementById('usercheck_middle_div');
20 verbose bad json if (btnDiv != null)
20 verbose bad json {
20 verbose bad json // alert("setting discard button div");
20 verbose bad json btnDiv.innerHTML = MiddleButtonMessage;
20 verbose bad json }
20 verbose bad json var goBackDiv = document.getElementById('usercheck_return_to_site_div');
20 verbose bad json if (goBackDiv)
20 verbose bad json {
20 verbose bad json // show return to site only when its http violation AND if the action is: sent or discarded or already sent or already discarded or cancelled.
20 verbose bad json if (window.oUserAction.incidentObject.RedirectToAddr != "" && (window.oUserAction.incidentObject.IncidentStatus == 3 || window.oUserAction.incidentObject.IncidentStatus == 4 || window.oUserAction.incidentObject.IncidentStatus == 5 || window.oUserAction.incidentObject.IncidentStatus == 6 || window.oUserAction.incidentObject.IncidentStatus == 2))
20 verbose bad json {
20 verbose bad json goBackDiv.innerHTML = '<a href="' + window.oUserAction.incidentObject.RedirectToAddr + '">' + PORTAL_IS.L10N.L10N_Obj.getStr("RETURN_TO_SITE") + '</a>';
20 verbose bad json }
20 verbose bad json }
20 verbose bad json }
20 verbose bad json else
20 verbose bad json document.getElementById('usercheck_main_div').innerHTML = CancelMessage;
20 verbose bad json
20 verbose bad json var page_title = document.getElementById('usercheck_page_title');
20 verbose bad json if(page_title != null)
20 verbose bad json page_title.innerHTML = PageTitle;
20 verbose bad json
20 verbose bad json var span = document.getElementById('UserCheck_OK_Button_span');
20 verbose bad json if(span != null)
20 verbose bad json span.innerHTML = PORTAL_IS.L10N.L10N_Obj.getStr('BUTTON.OK');
20 verbose bad json
20 verbose bad json span = document.getElementById('UserCheck_Cancel_Button_span');
20 verbose bad json if(span != null)
20 verbose bad json span.innerHTML = PORTAL_IS.L10N.L10N_Obj.getStr('BUTTON.CANCEL');
20 verbose bad json
20 verbose bad json span = document.getElementById('UserCheck_Send_Button_span');
20 verbose bad json if(span != null)
20 verbose bad json span.innerHTML = PORTAL_IS.L10N.L10N_Obj.getStr('BUTTON.SEND');
20 verbose bad json span = document.getElementById('UserCheck_Middle_Button_span');
20 verbose bad json if(span != null)
20 verbose bad json {
20 verbose bad json if (window.oUserAction.incidentObject.RedirectToAddr == "")
20 verbose bad json span.innerHTML = PORTAL_IS.L10N.L10N_Obj.getStr('BUTTON.DISCARD');
20 verbose bad json else
20 verbose bad json span.innerHTML = PORTAL_IS.L10N.L10N_Obj.getStr("BUTTON.APPROVE");
20 verbose bad json }
20 verbose bad json
20 verbose bad json var reportLink = document.getElementById('UserCheck_Wrong_Category');
20 verbose bad json if(reportLink != null)
20 verbose bad json {
20 verbose bad json var correctClass = window.oUserAction.getCorrectClass();
20 verbose bad json
20 verbose bad json reportLink.setAttribute(correctClass, "usercheck_url_class");
20 verbose bad json
20 verbose bad json reportLink.onclick = function(e) { window.oUserAction.sendReport(); }
20 verbose bad json }
20 verbose bad json
20 verbose bad json //Clear the error message when switching language.
20 verbose bad json var errorElement = document.getElementById('usercheck_error_div');
20 verbose bad json if(errorElement != null)
20 verbose bad json errorElement.innerHTML = "&nbsp;";
20 verbose bad json
20 verbose bad json //Keep TextArea default text to disallow it as input.
20 verbose bad json var textarea_element = null;
20 verbose bad json
20 verbose bad json if(window.oUserAction.textareaExists(AdminMessage))
20 verbose bad json {
20 verbose bad json textarea_element = document.getElementById('UserCheck_Textual_Input');
20 verbose bad json //If the textarea is an incorrect element or length is correct, check passes.
20 verbose bad json if(textarea_element.value === undefined)
20 verbose bad json {
20 verbose bad json //This element is not really our text area so we don't need it.
20 verbose bad json textarea_element = null;
20 verbose bad json }
20 verbose bad json }
20 verbose bad json
20 verbose bad json if(textarea_element != null)
20 verbose bad json {
20 verbose bad json window.oUserAction.textAreaText = textarea_element.value;
20 verbose bad json
20 verbose bad json var correctClass = window.oUserAction.getCorrectClass();
20 verbose bad json textarea_element.setAttribute(correctClass, "usercheck_message_class usercheck_textual_input_class usercheck_textual_input_class_required");
20 verbose bad json
20 verbose bad json textarea_element.onfocus = function() { window.oUserAction.clearRequiredInput(); };
20 verbose bad json }
20 verbose bad json //disable the approve button only on PortalMaindlp. on thin client approve button should always be enabled
20 verbose bad json if (window.oUserAction.incidentObject.RedirectToAddr != "" && window.isThinPortal != true)
20 verbose bad json {
20 verbose bad json window.oUserActionCommon.DlpHttpLearning(AdminMessage,HTTPLearningEnabled);
20 verbose bad json }
20 verbose bad json // hiding the cancel button on infom on dlp only
20 verbose bad json window.oUserActionCommon.DlpHideCancelBtn(window.oUserAction.incidentObject.Action);
20 verbose bad json }
20 verbose bad json }
20 verbose bad json
20 verbose bad json //Sends report for wrong category.
20 verbose bad json this.sendReport = function()
20 verbose bad json {
20 verbose bad json var Variables = window.oUserAction.incidentObject.Variables;
20 verbose bad json
20 verbose bad json var resource = Variables['resource'] === undefined ? "" : Variables['resource'];
20 verbose bad json var hmac = Variables['resource_hmac'] === undefined ? "" : Variables['resource_hmac'];
20 verbose bad json var version = Variables['version'];
20 verbose bad json var product = Variables['product'];
20 verbose bad json
20 verbose bad json //Get the application name. If this variable has been modified (added application icon for example), take the original.
20 verbose bad json var appname = Variables['application_name_orig'];
20 verbose bad json var malwareID = Variables['application_id'];
20 verbose bad json if(appname === undefined)
20 verbose bad json appname = Variables['application_name'];
20 verbose bad json
20 verbose bad json var base64UrlEncode = function(input) { return $.base64Encode(input).replace(/\+/g, '-').replace(/\//g, '_').replace(/\=/g, '') };
20 verbose bad json
20 verbose bad json //Encode to base64 URL form spec.
20 verbose bad json appname = base64UrlEncode(appname);
20 verbose bad json resource = base64UrlEncode(resource);
20 verbose bad json
20 verbose bad json //URL of the external URL
20 verbose bad json var url = window.location.protocol + "//cws.checkpoint.com/MISCAT/miscat/1.0?resource=" + resource + "&hmac=" + hmac + "&appname=" + appname + "&version=" + version + "&product=" + product + "&malwareID=" + malwareID;
20 verbose bad json
20 verbose bad json //Display a portal messge indicating the action was successful. On mobile devices we use the built-in message display.
20 verbose bad json if(window.browserDetails.isMobile())
20 verbose bad json alert(PORTAL_IS.L10N.L10N_Obj.getStr("REPORT_SUCCESS"));
20 verbose bad json else
20 verbose bad json showPortalMessage('<table><tr><td>' + draw_img_tag_span(getURL("images/confirmation.png")) + '&nbsp;&nbsp;</td><td>' + PORTAL_IS.L10N.L10N_Obj.getStr("REPORT_SUCCESS") + '</td></tr></table>', null, PORTAL_IS.MESSAGE_TYPE.Confirmation, true, false);
20 verbose bad json
20 verbose bad json var img = new Image();
20 verbose bad json img.src = url;
20 verbose bad json
20 verbose bad json var reportLink = document.getElementById('UserCheck_Wrong_Category');
20 verbose bad json
20 verbose bad json var correctClass = window.oUserAction.getCorrectClass();
20 verbose bad json
20 verbose bad json //Disable the link.
20 verbose bad json reportLink.setAttribute(correctClass, "usercheck_url_class usercheck_disabled_url_class");
20 verbose bad json
20 verbose bad json //send log on wrong category
20 verbose bad json var cookie = getCookie('UserCheck_UserID');
20 verbose bad json
20 verbose bad json var requestData = {};
20 verbose bad json
20 verbose bad json requestData.IID = "-1";
20 verbose bad json requestData.UserOption = "LOG-WRONG-CATEGORY";
20 verbose bad json requestData.UserID = cookie;
20 verbose bad json requestData.IsReasonExist = false;
20 verbose bad json
20 verbose bad json
20 verbose bad json //Sometimes the cookie is not written correctly, so used global user.
20 verbose bad json if(requestData.UserID == null || requestData.UserID == "")
20 verbose bad json requestData.UserID = g_userID;
20 verbose bad json
20 verbose bad json requestData.IID = UserCheck.DataObj.IID;
20 verbose bad json
20 verbose bad json var sAbsoluteURL = PORTAL_IS.TOOLS.getURL("data/GetUserCheckUserChoiceData");
20 verbose bad json
20 verbose bad json sendAsynchronousRequest(sAbsoluteURL,
20 verbose bad json flattenObject(requestData),
20 verbose bad json this.handleUserReportWrongCategoryData,
20 verbose bad json this,
20 verbose bad json [new Callback()]);
20 verbose bad json
20 verbose bad json //Nothing should happen on click from now on.
20 verbose bad json reportLink.onclick = function() { };
20 verbose bad json }
20 verbose bad json
20 verbose bad json this.handleReportTimeout = function()
20 verbose bad json {
20 verbose bad json var elem = document.getElementById('testID');
20 verbose bad json document.getElementsByTagName('head')[0].removeChild(elem);
20 verbose bad json }
20 verbose bad json
20 verbose bad json //Verifies the input of the user, including checkbox and textarea.
20 verbose bad json this.highlightInput = function()
20 verbose bad json {
20 verbose bad json var checkbox_element = null;
20 verbose bad json var textarea_element = null;
20 verbose bad json var checkbox_ready = false;
20 verbose bad json var textarea_ready = false;
20 verbose bad json
20 verbose bad json var AdminMessage = window.oUserAction.incidentObject.Languages[window.oUserAction.incidentObject.SelectedLanguage].AdminMessage;
20 verbose bad json
20 verbose bad json //If the checkbox exists (and it is a correct element), its value will determine the button status.
20 verbose bad json if(window.oUserAction.incidentObject.IsCheckBoxEnforced == true && window.oUserAction.checkBoxExists(AdminMessage) == true && document.getElementById('UserCheck_Confirm_Checkbox').checked !== undefined)
20 verbose bad json {
20 verbose bad json checkbox_element = document.getElementById('UserCheck_Confirm_Checkbox');
20 verbose bad json checkbox_ready = checkbox_element.checked;
20 verbose bad json }
20 verbose bad json else
20 verbose bad json checkbox_ready = true;
20 verbose bad json
20 verbose bad json //If the reason textbox exists and is enforced, its value will determine the button status.
20 verbose bad json if(window.oUserAction.incidentObject.IsReasonEnforced === true && window.oUserAction.textareaExists(AdminMessage))
20 verbose bad json {
20 verbose bad json textarea_element = document.getElementById('UserCheck_Textual_Input');
20 verbose bad json
20 verbose bad json //If the textarea is an incorrect element or length is correct, check passes.
20 verbose bad json if(textarea_element.value === undefined)
20 verbose bad json {
20 verbose bad json textarea_ready = true;
20 verbose bad json //This element is not really our text area so we don't need it.
20 verbose bad json textarea_element = null;
20 verbose bad json }
20 verbose bad json else
20 verbose bad json {
20 verbose bad json if (textarea_element.value.length > 0 && textarea_element.value.length <= 400 && textarea_element.value != PORTAL_IS.L10N.L10N_Obj.getStr("ENTER_TEXT") && textarea_element.value != window.oUserAction.textAreaText)
20 verbose bad json textarea_ready = true;
20 verbose bad json else
20 verbose bad json textarea_ready = false;
20 verbose bad json }
20 verbose bad json }
20 verbose bad json else
20 verbose bad json textarea_ready = true;
20 verbose bad json
20 verbose bad json var all_ready = checkbox_ready === true && textarea_ready === true;
20 verbose bad json
20 verbose bad json var correctClass = window.oUserAction.getCorrectClass();
20 verbose bad json var elememt_to_scroll = null;
20 verbose bad json
20 verbose bad json if(checkbox_element != null)
20 verbose bad json {
20 verbose bad json
20 verbose bad json checkbox_element.parentNode.parentNode.parentNode.parentNode.setAttribute(correctClass, (checkbox_ready ? "usercheck_red_no_highlight" : "usercheck_red_highlight" ));
20 verbose bad json elememt_to_scroll = checkbox_ready ? elememt_to_scroll : checkbox_element.parentNode.parentNode.parentNode.parentNode;
20 verbose bad json }
20 verbose bad json
20 verbose bad json if(textarea_element != null)
20 verbose bad json {
20 verbose bad json textarea_element.setAttribute(correctClass, "usercheck_message_class usercheck_textual_input_class " + (textarea_ready ? "usercheck_red_no_highlight" : "usercheck_red_highlight usercheck_textual_input_class_required" ));
20 verbose bad json elememt_to_scroll = textarea_ready ? elememt_to_scroll : textarea_element;
20 verbose bad json if(!textarea_ready)
20 verbose bad json {
20 verbose bad json if(window.oUserAction.textAreaText === "" || textarea_element.value !== window.oUserAction.textAreaText)
20 verbose bad json {
20 verbose bad json if(window.oUserAction.textAreaText != "")
20 verbose bad json textarea_element.value = window.oUserAction.textAreaText;
20 verbose bad json else
20 verbose bad json textarea_element.value = PORTAL_IS.L10N.L10N_Obj.getStr("ENTER_TEXT");
20 verbose bad json }
20 verbose bad json textarea_element.onfocus = function() { window.oUserAction.clearRequiredInput(); };
20 verbose bad json }
20 verbose bad json }
20 verbose bad json
20 verbose bad json if(!textarea_ready && !checkbox_ready && checkbox_element!=null && textarea_element!=null)
20 verbose bad json {
20 verbose bad json if(checkbox_element.parentNode.parentNode.parentNode.parentNode.offsetTop > textarea_element.offsetTop)
20 verbose bad json elememt_to_scroll = checkbox_element;
20 verbose bad json
20 verbose bad json }
20 verbose bad json
20 verbose bad json if(elememt_to_scroll!=null){
20 verbose bad json elememt_to_scroll.scrollIntoView(false);
20 verbose bad json var scrollableDiv = document.getElementById("usercheck_scrollable_div");
20 verbose bad json if (scrollableDiv !== null)
20 verbose bad json scrollableDiv.scrollLeft = 0;
20 verbose bad json }
20 verbose bad json
20 verbose bad json var errorElement = document.getElementById('usercheck_error_div');
20 verbose bad json if(errorElement != null)
20 verbose bad json errorElement.innerHTML = all_ready ? "" : "<br/><span style='color: #FF0000;'>* " + PORTAL_IS.L10N.L10N_Obj.getStr("REQUIRED_FIELDS") + "</span>";
20 verbose bad json
20 verbose bad json return all_ready;
20 verbose bad json }
20 verbose bad json
20 verbose bad json this.clearRequiredInput = function()
20 verbose bad json {
20 verbose bad json textarea_element = document.getElementById('UserCheck_Textual_Input');
20 verbose bad json
20 verbose bad json textarea_element.value = "";
20 verbose bad json
20 verbose bad json var correctClass = window.oUserAction.getCorrectClass();
20 verbose bad json
20 verbose bad json if(textarea_element.getAttribute(correctClass).indexOf("usercheck_red_highlight") !== -1)
20 verbose bad json textarea_element.setAttribute(correctClass, "usercheck_message_class usercheck_textual_input_class usercheck_red_highlight");
20 verbose bad json else
20 verbose bad json textarea_element.setAttribute(correctClass, "usercheck_message_class usercheck_textual_input_class");
20 verbose bad json
20 verbose bad json textarea_element.onfocus = function() { };
20 verbose bad json }
20 verbose bad json
20 verbose bad json this.sendMail = function()
20 verbose bad json {
20 verbose bad json DEBUG.out("UserAction::sendMail");
20 verbose bad json this.last_action = 'sent';
20 verbose bad json
20 verbose bad json if(!window.oUserAction.highlightInput())
20 verbose bad json //There was some user input missing - don't continue.
20 verbose bad json return;
20 verbose bad json
20 verbose bad json var reason = "";
20 verbose bad json if(document.getElementById('UserCheck_Textual_Input') != null)
20 verbose bad json {
20 verbose bad json reason = document.getElementById('UserCheck_Textual_Input').value;
20 verbose bad json //If the reason box is not found, there is nothing to enforce.
20 verbose bad json if(reason === undefined)
20 verbose bad json {
20 verbose bad json reason = "";
20 verbose bad json }
20 verbose bad json }
20 verbose bad json
20 verbose bad json
20 verbose bad json var sendMailCallback = new Callback();
20 verbose bad json sendMailCallback.methodReference = this.handleConfirmationData;
20 verbose bad json sendMailCallback.thisArgument = this;
20 verbose bad json sendMailCallback.args.push(new Callback());
20 verbose bad json PORTAL_IS.AJAX_MGR.sendAsyncReq( getURL("EmailSend"),
20 verbose bad json "mailId="+encodeURIComponent(UserCheck.DataObj.IID)+
20 verbose bad json "&justification="+encodeURIComponent(reason)+"&action=DLP-CHOICE-ACTION-SEND",
20 verbose bad json sendMailCallback,
20 verbose bad json null,
20 verbose bad json null,
20 verbose bad json "Sending email failed.");
20 verbose bad json
20 verbose bad json
20 verbose bad json }
20 verbose bad json
20 verbose bad json this.discardMail = function()
20 verbose bad json {
20 verbose bad json DEBUG.out("UserAction::deleteMail");
20 verbose bad json this.last_action = 'delete';
20 verbose bad json
20 verbose bad json var sendMailCallback = new Callback();
20 verbose bad json sendMailCallback.methodReference = this.handleConfirmationData;
20 verbose bad json sendMailCallback.thisArgument = this;
20 verbose bad json sendMailCallback.args.push(new Callback());
20 verbose bad json PORTAL_IS.AJAX_MGR.sendAsyncReq( getURL("EmailSend"),
20 verbose bad json "mailId="+encodeURIComponent(UserCheck.DataObj.IID)+
20 verbose bad json "&justification="+encodeURIComponent("")+"&action=DLP-CHOICE-ACTION-DISCARD",
20 verbose bad json sendMailCallback,
20 verbose bad json null,
20 verbose bad json null,
20 verbose bad json "Sending email failed.");
20 verbose bad json
20 verbose bad json
20 verbose bad json }
20 verbose bad json
20 verbose bad json this.handleConfirmationData = function(xhrStatus, xhrResponse, callback)
20 verbose bad json {
20 verbose bad json DEBUG.out("UserAction::handleConfirmationData ");
20 verbose bad json if (callback == undefined)
20 verbose bad json {
20 verbose bad json callback = new Callback();
20 verbose bad json }
20 verbose bad json if (xhrStatus != 200)
20 verbose bad json {
20 verbose bad json // TODO: Handle error.
20 verbose bad json DEBUG.out('Retreiving Single Incident Review Data failed. ('+xhrStatus+')', DEBUG.ERROR);
20 verbose bad json callback.call();
20 verbose bad json return;
20 verbose bad json }
20 verbose bad json var newViewJSONObj = JSON.parse(xhrResponse);
20 verbose bad json var message = newViewJSONObj.message;
20 verbose bad json var lastChanged = newViewJSONObj.lastChanged;
20 verbose bad json var succeeded = newViewJSONObj.succeeded;
20 verbose bad json if (lastChanged != -1 && lastChanged != 0)
20 verbose bad json {
20 verbose bad json //message += " ";
20 verbose bad json //message += convertToGmt(lastChanged);
20 verbose bad json //this.emailData.date = convertToGmt(lastChanged);
20 verbose bad json }
20 verbose bad json //@@NA add test if this is from Thin Portal and only then redirect to about:blank
20 verbose bad json // window.location = "about:blank";
20 verbose bad json if (succeeded)
20 verbose bad json {
20 verbose bad json var cookie = getCookie('UserCheck_UserID');
20 verbose bad json var requestData = {};
20 verbose bad json requestData.IID = "-1";
20 verbose bad json requestData.UserID = cookie;
20 verbose bad json requestData.IsReasonExist = true;
20 verbose bad json requestData.Reason = "";
20 verbose bad json requestData.UserOption = "SEND";
20 verbose bad json if (newViewJSONObj.action == "DLP-CHOICE-ACTION-DISCARD")
20 verbose bad json {
20 verbose bad json requestData.UserOption = "DISCARD";
20 verbose bad json }
20 verbose bad json
20 verbose bad json if (newViewJSONObj.action === undefined || newViewJSONObj.action != "DLP-CHOICE-ACTION-SEND")
20 verbose bad json {
20 verbose bad json requestData.IsReasonExist = false;
20 verbose bad json }
20 verbose bad json else
20 verbose bad json {
20 verbose bad json if(document.getElementById('UserCheck_Textual_Input') != null)
20 verbose bad json {
20 verbose bad json var reason = document.getElementById('UserCheck_Textual_Input').value;
20 verbose bad json
20 verbose bad json //If the reason box is not found, there is nothing to enforce.
20 verbose bad json if(reason === undefined)
20 verbose bad json {
20 verbose bad json reason = "";
20 verbose bad json requestData.IsReasonExist = false;
20 verbose bad json }
20 verbose bad json else if(window.oUserAction.incidentObject.IsReasonEnforced === true && (reason.length == 0 || reason.length > 400))
20 verbose bad json return;
20 verbose bad json
20 verbose bad json requestData.Reason = reason;
20 verbose bad json }
20 verbose bad json else
20 verbose bad json {
20 verbose bad json requestData.IsReasonExist = false;
20 verbose bad json }
20 verbose bad json }
20 verbose bad json //Sometimes the cookie is not written correctly, so used global user.
20 verbose bad json if(requestData.UserID == null || requestData.UserID == "")
20 verbose bad json requestData.UserID = g_userID;
20 verbose bad json requestData.IID = UserCheck.DataObj.IID;
20 verbose bad json
20 verbose bad json var sAbsoluteURL = PORTAL_IS.TOOLS.getURL("data/GetUserCheckUserChoiceData");
20 verbose bad json
20 verbose bad json sendAsynchronousRequest(sAbsoluteURL,
20 verbose bad json flattenObject(requestData),
20 verbose bad json this.handleUserCheckChoiceData,
20 verbose bad json this,
20 verbose bad json [new Callback()]);
20 verbose bad json }
20 verbose bad json
20 verbose bad json }
20 verbose bad json
20 verbose bad json this.goToBlank = function()
20 verbose bad json {
20 verbose bad json window.location = "about:blank";
20 verbose bad json }
20 verbose bad json
20 verbose bad json this.ApproveHttp = function()
20 verbose bad json {
20 verbose bad json this.sendMail();
20 verbose bad json }
20 verbose bad json
20 verbose bad json
20 verbose bad json this.createScrubbingLinks = function(attachments, isExtended)
20 verbose bad json {
20 verbose bad json var scrub_files_out = "<ul style=\"list-style-type: none;padding: 0;\">";
20 verbose bad json for (var i = 0;i<attachments.length;i++)
20 verbose bad json {
20 verbose bad json if (attachments[i].fileStatus == "FILE-STATUS-APPROVED-BY-TE" || attachments[i].fileStatus == "FILE-STATUS-AVAILABLE" || attachments[i].fileStatus == "FILE-STATUS-AVAILABLE-SUSPICIOUS")
20 verbose bad json {
20 verbose bad json var image = "images/confirmation.png";
20 verbose bad json var comment = "";
20 verbose bad json var toolTip = "Click to download";
20 verbose bad json var removedParts = attachments[i].removedParts;
20 verbose bad json if (isExtended == true)
20 verbose bad json {
20 verbose bad json if(removedParts != "")
20 verbose bad json {
20 verbose bad json removedParts = removedParts.replace(/\n/g,", ");
20 verbose bad json comment = " contains " + removedParts;
20 verbose bad json }
20 verbose bad json else
20 verbose bad json {
20 verbose bad json comment = PORTAL_IS.L10N.L10N_Obj.getStr(attachments[i].scrubResult);
20 verbose bad json }
20 verbose bad json }
20 verbose bad json scrub_files_out += "<li title=\"" + toolTip + "\"><img src=\"" + image + "\" width=\"20\" height=\"20\"/>&nbsp;&nbsp;" + "<a href=\"ScrubGetFile?IID="+UserCheck.DataObj.IID+"&fileID="+attachments[i].fileId+"\" TARGET=\"_blank\"><span style=\"font-weight:bold\">" + attachments[i].fileName + "</span></a> <span style=\"color:Red;font-size:80%\">" + comment + "</span></li>"
20 verbose bad json }
20 verbose bad json else
20 verbose bad json {
20 verbose bad json var description = "";
20 verbose bad json var img = "";
20 verbose bad json var toolTip = "";
20 verbose bad json if (attachments[i].fileStatus == "FILE-STATUS-WAITING-FOR-TE")
20 verbose bad json {
20 verbose bad json g_refreshFiles = true;
20 verbose bad json description = "scanning...";
20 verbose bad json img = "img/loader.gif";
20 verbose bad json toolTip = "Please wait while file is being scanned";
20 verbose bad json }
20 verbose bad json else if (attachments[i].fileStatus == "FILE-STATUS-BLOCKED-BY-TE")
20 verbose bad json {
20 verbose bad json description = "blocked - file is malicious";
20 verbose bad json img = "img/block.png";
20 verbose bad json toolTip = "File is malicious - blocked for download";
20 verbose bad json }
20 verbose bad json else if (attachments[i].fileStatus == "FILE-STATUS-BLOCKED-BY-POLICY")
20 verbose bad json {
20 verbose bad json description = "blocked according to company policy";
20 verbose bad json img = "img/block.png";
20 verbose bad json toolTip = "File is blocked for download according to company policy";
20 verbose bad json }
20 verbose bad json scrub_files_out += "<li title=\"" + toolTip + "\"><img src=\"" + img + "\" width=\"20\" height=\"20\"/>&nbsp;&nbsp;" + attachments[i].fileName + " <span style=\"color:LightSteelBlue\">(" + description + ")</span></li>"
20 verbose bad json }
20 verbose bad json }
20 verbose bad json scrub_files_out += "</ul><div id=\"refresh_timer_div\"></div>";
20 verbose bad json return scrub_files_out;
20 verbose bad json }
20 verbose bad json
20 verbose bad json this.handleScrubbingFiles = function(xhrStatus, xhrResponse, callback)
20 verbose bad json {
20 verbose bad json if (callback == undefined)
20 verbose bad json {
20 verbose bad json callback = new Callback();
20 verbose bad json }
20 verbose bad json
20 verbose bad json if (xhrStatus != 200)
20 verbose bad json {
20 verbose bad json DEBUG.out('Retreiving UserCheck Incident Data failed. ('+xhrStatus+')', DEBUG.ERROR);
20 verbose bad json callback.call();
20 verbose bad json return;
20 verbose bad json }
20 verbose bad json
20 verbose bad json this.scrubbingResponse = JSON.parse(xhrResponse);
20 verbose bad json
20 verbose bad json var attachments = [];
20 verbose bad json if( Object.prototype.toString.call( this.scrubbingResponse.data.attachments ) != '[object Array]' ) {
20 verbose bad json attachments[0] = this.scrubbingResponse.data.attachments;
20 verbose bad json }
20 verbose bad json else
20 verbose bad json {
20 verbose bad json attachments = this.scrubbingResponse.data.attachments;
20 verbose bad json }
20 verbose bad json
20 verbose bad json g_refreshFiles = false;
20 verbose bad json var scrub_links_simple = document.getElementById('links_simple');
20 verbose bad json if (scrub_links_simple != null)
20 verbose bad json {
20 verbose bad json if (scrub_links_simple.hasChildNodes())
20 verbose bad json scrub_links_simple.removeChild(scrub_links_simple.childNodes[0]);
20 verbose bad json var tmp = document.createElement("div");
20 verbose bad json tmp.innerHTML = window.oUserAction.createScrubbingLinks(attachments, false);
20 verbose bad json scrub_links_simple.appendChild(tmp);
20 verbose bad json }
20 verbose bad json
20 verbose bad json var scrub_links_extended = document.getElementById('links_extended');
20 verbose bad json if (scrub_links_extended != null)
20 verbose bad json {
20 verbose bad json if (scrub_links_extended.hasChildNodes())
20 verbose bad json scrub_links_extended.removeChild(scrub_links_extended.childNodes[0]);
20 verbose bad json var tmp = document.createElement("div");
20 verbose bad json tmp.innerHTML = window.oUserAction.createScrubbingLinks(attachments, true);
20 verbose bad json scrub_links_extended.appendChild(tmp);
20 verbose bad json }
20 verbose bad json
20 verbose bad json var scrub_wait_massage = document.getElementById('scrub_wait_message');
20 verbose bad json if (scrub_wait_massage != null)
20 verbose bad json {
20 verbose bad json scrub_wait_massage.style.display = 'none';
20 verbose bad json }
20 verbose bad json
20 verbose bad json if (g_refreshFiles)
20 verbose bad json {
20 verbose bad json UserCheck.tools.oTimeoutManager.startTimeoutTimer(30, window.oUserAction.refreshScrubbingFiles);
20 verbose bad json }
20 verbose bad json callback.call();
20 verbose bad json }
20 verbose bad json
20 verbose bad json this.refreshScrubbingFiles = function()
20 verbose bad json {
20 verbose bad json var requestData = {
20 verbose bad json IID: "-1"
20 verbose bad json };
20 verbose bad json requestData.IID = UserCheck.DataObj.IID;
20 verbose bad json var sAbsoluteURL = PORTAL_IS.TOOLS.getURL("data/GetScrubFiles");
20 verbose bad json sendAsynchronousRequest(sAbsoluteURL,
20 verbose bad json flattenObject(requestData),
20 verbose bad json window.oUserAction.handleScrubbingFiles,
20 verbose bad json this,
20 verbose bad json [new Callback()]);
20 verbose bad json }
20 verbose bad json
20 verbose bad json this.showOrHideRemovedPartsfromFiles = function(FileIndex)
20 verbose bad json {
20 verbose bad json var infoimg_element = document.getElementById('infoimg_' + FileIndex);
20 verbose bad json var removed_parts_element = document.getElementById('removed_parts_' + FileIndex);
20 verbose bad json
20 verbose bad json if ( infoimg_element != null && removed_parts_element != null )
20 verbose bad json {
20 verbose bad json if( removed_parts_element.style.display === "none" )
20 verbose bad json {
20 verbose bad json infoimg_element.style.display = 'none';
20 verbose bad json removed_parts_element.style.display = 'inline';
20 verbose bad json }
20 verbose bad json else
20 verbose bad json {
20 verbose bad json infoimg_element.style.display = "inline";
20 verbose bad json removed_parts_element.style.display = 'none';
20 verbose bad json }
20 verbose bad json }
20 verbose bad json }
20 verbose bad json
20 verbose bad json } //END: window.UserAction = function()
20 verbose bad json
20 verbose bad json window.oUserAction = new UserAction();
20 verbose bad json oUserAction.init();
20 verbose bad json
20 verbose bad json </script>
20 verbose bad json
20 verbose bad json </html>
21 error registry error parsing json
22 verbose headers { date: 'Tue, 06 Jun 2017 10:41:22 GMT',
22 verbose headers server: 'CPWS',
22 verbose headers 'x-ua-compatible': 'IE=edge',
22 verbose headers 'set-cookie':
22 verbose headers [ 'DLPSID=c9e2670e8f351869eb4aa1423c788921; path=/; secure; HttpOnly',
22 verbose headers 'UserCheck_UserID=HESS+Manuel+%28hess2%29%0A; expires=Wed, 06-Jun-2018 16:30:08 GMT' ],
22 verbose headers expires: 'Thu, 19 Nov 1981 08:52:00 GMT',
22 verbose headers 'cache-control': 'no-store, no-cache, must-revalidate, post-check=0, pre-check=0',
22 verbose headers pragma: 'no-cache',
22 verbose headers 'keep-alive': 'timeout=1, max=100',
22 verbose headers connection: 'Keep-Alive',
22 verbose headers 'transfer-encoding': 'chunked',
22 verbose headers 'content-type': 'text/html' }
23 silly get cb [ 200,
23 silly get { date: 'Tue, 06 Jun 2017 10:41:22 GMT',
23 silly get server: 'CPWS',
23 silly get 'x-ua-compatible': 'IE=edge',
23 silly get 'set-cookie':
23 silly get [ 'DLPSID=c9e2670e8f351869eb4aa1423c788921; path=/; secure; HttpOnly',
23 silly get 'UserCheck_UserID=HESS+Manuel+%28hess2%29%0A; expires=Wed, 06-Jun-2018 16:30:08 GMT' ],
23 silly get expires: 'Thu, 19 Nov 1981 08:52:00 GMT',
23 silly get 'cache-control': 'no-store, no-cache, must-revalidate, post-check=0, pre-check=0',
23 silly get pragma: 'no-cache',
23 silly get 'keep-alive': 'timeout=1, max=100',
23 silly get connection: 'Keep-Alive',
23 silly get 'transfer-encoding': 'chunked',
23 silly get 'content-type': 'text/html' } ]
24 silly fetchPackageMetaData SyntaxError: Unexpected token < in JSON at position 0
24 silly fetchPackageMetaData <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData <html>
24 silly fetchPackageMetaData <head>
24 silly fetchPackageMetaData <meta name="robots" content="noindex,nofollow" />
24 silly fetchPackageMetaData <meta content="yes" name="apple-mobile-web-app-capable" />
24 silly fetchPackageMetaData <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData <link rel="icon" type="image/vnd.microsoft.icon" href="img/favicon.ico"/> <link rel="shortcut icon" type="image/vnd.microsoft.icon" href="img/favicon.ico"/>
24 silly fetchPackageMetaData <link id="dynamicCSS" rel="stylesheet" type="text/css" href="/UserCheck/css/Blob_dynamic_css" />
24 silly fetchPackageMetaData <link id="staticCSS" rel="stylesheet" type="text/css" href="/UserCheck/css/Blob_static.css" />
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData <script type="text/javascript">
24 silly fetchPackageMetaData //Create a dynamic element to allow sending of the document mode of IE.
24 silly fetchPackageMetaData //This way we can notify PHP that it can display modern content instead of classic, despite the browser's reporting of being IE7.
24 silly fetchPackageMetaData var headID = document.getElementsByTagName("head")[0];
24 silly fetchPackageMetaData var cssNode = document.createElement('link');
24 silly fetchPackageMetaData cssNode.type = 'text/css';
24 silly fetchPackageMetaData cssNode.rel = 'stylesheet';
24 silly fetchPackageMetaData cssNode.href = "/UserCheck/css/UserCheckCSS" + (document.documentMode !== undefined ? "?documentMode=" + document.documentMode : "");
24 silly fetchPackageMetaData headID.appendChild(cssNode);
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData /*
24 silly fetchPackageMetaData ========================================================================================================================
24 silly fetchPackageMetaData PORTAL IS - ESSENTIALS INCLUSION - START
24 silly fetchPackageMetaData ________________________________________________________________________________________________________________________
24 silly fetchPackageMetaData */
24 silly fetchPackageMetaData // Set global PORTAL_IS namespace.
24 silly fetchPackageMetaData window.PORTAL_IS = {};
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Set namespace.
24 silly fetchPackageMetaData PORTAL_IS.CONF = {};
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData PORTAL_IS.CONF.AJAX_REQ_TIMEOUT = 15000;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // These properties describes the external references of the portal.
24 silly fetchPackageMetaData PORTAL_IS.CONF.MULTI_PORTALS = {};
24 silly fetchPackageMetaData PORTAL_IS.CONF.MULTI_PORTALS.EXTERNAL_PATH = "";
24 silly fetchPackageMetaData PORTAL_IS.CONF.MULTI_PORTALS.EXTERNAL_PORT = 443;
24 silly fetchPackageMetaData PORTAL_IS.CONF.MULTI_PORTALS.EXTERNAL_HOST = "192.168.0.0";
24 silly fetchPackageMetaData PORTAL_IS.CONF.MULTI_PORTALS.EXTERNAL_SCHEME = "https";
24 silly fetchPackageMetaData PORTAL_IS.CONF.MULTI_PORTALS.XSRF_TOKEN = "";
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // The current web application name.
24 silly fetchPackageMetaData PORTAL_IS.CONF.WEBAPP_NAME = "UserCheck";
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Debug configurations
24 silly fetchPackageMetaData PORTAL_IS.CONF.MAX_STACK_SIZE = 1000;
24 silly fetchPackageMetaData PORTAL_IS.CONF.QUIET_MODE = "on".toLowerCase() == "on";
24 silly fetchPackageMetaData PORTAL_IS.CONF.DEBUG_LEVEL = 0;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Set namespace.
24 silly fetchPackageMetaData window.PORTAL_IS.L10N = {}
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Localization object.
24 silly fetchPackageMetaData //=============================================================================================
24 silly fetchPackageMetaData function __L10N()
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData this.strings = new Array();
24 silly fetchPackageMetaData this.browserLangs = new Array();
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData this.init = function()
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData var obj = {"UC_TITLE":"Check Point UserCheck","UC_TITLE_MOBILE_DLP":"Check Point UserCheck Mobile DLP","BUTTON.OK":"OK","BUTTON.CANCEL":"Cancel","BUTTON.SEND":"Send","BUTTON.DISCARD":"Discard","BUTTON.APPROVE":"Approve","WRONG_ID":"This notification page has expired. You can safely close the page or ","TIMEOUT":"This notification page has expired. You can safely close the page or ","RETRY":"reload the original page.","REPORT_SUCCESS":"Report was sent successfully.","REPORT_ERROR":"An error occured while sending the report.","REQUIRED_FIELDS":"Required fields","ENTER_TEXT":"Enter text","RETURN_TO_SITE":"Return to site","UC.BLOCKED_IFRAME":"Learn more...","UC.INFO_IFRAME":"Click to resolve...","PLEASE_WAIT":"Please wait . . .","NO_SCRIPT":"This portal requires browser which support JavaScript.<br>Please make sure that you are using an updated browser and that JavaScript is enabled.","MSGBOX_TITLE_CONFIRMATION":"Confirmation","MSGBOX_TITLE_JUSTIFICATION":"Justification","MSGBOX_TITLE_APPROVER":"Approver","MSGBOX_TITLE_WARNING":"Warning","MSGBOX_TITLE_ATTENTION":"Attention","MSGBOX_TITLE_ERROR":"Error","MSGBOX_TITLE_REPORT_ERROR":"Report an error","MSGBOX_TITLE_EXTEND_EXPIRATION":"Extend expiration date","DEFAULT_GENERIC_CLIENT_ERROR":"An unexpected error has occurred.\nYou may still be able to continue working normally.\nPlease retry accessing the web page in a short while.\n\n","DEFAULT_GENERIC_TIMEOUT_CLIENT_ERROR":"You may not access this page, or this page has expired.\nPlease sign in.","LOG_REFERENCE_ID":"Log reference id: ","ERROR.LINK.SEND_ERROR_REPORT":"Send error report","ERROR.LINK.IM_HAVING_PROBLEMS":"I am having problems with this Portal.","CHECKPOINT_COPY_RIGHTS":"&copy;2011 Check Point Software Technologies Ltd.","EMAIL_SENT":"The email has been sent","EMAIL_DISCARDED":"The email has been discarded","EMAIL_ALREADY_SENT":"The email has already been sent","EMAIL_ALREADY_DISCARDED":"The email has already been discarded","UNKOWN_INCIDENT_STATUS":"The incident status is unkown","REVIEW_TEXT":"Review issue in portal","MAIL.ITEM.ATTACHMENTS":"Attachments","HTTP_LEARNING":"To complete the operation, <b>please return to site and resend the information<\/b>, thanks.","HTTP_LEARNING_ERROR_MSG":"Sending the message cannot be approved,<\/br> please contact your system administrator.","HTTP_LEARNING_ERROR_TOOLTIP":"Sending the message cannot be approved, please contact your system administrator.","CP_SCRUB_WAIT_MESSAGE":"Please wait while loading files...","CP_SCRUB_RESULT_SUCCESS":"","CP_SCRUB_RESULT_FAILURE":"File structure may be corrupted","CP_SCRUB_RESULT_TIMEOUT":"","CP_SCRUB_RESULT_UNSUPPORTED_FILE":"File format is not supported","CP_SCRUB_RESULT_NOT_SCRUBBED":"","CP_SCRUB_RESULT_INTERNAL_ERROR":"","CP_SCRUB_RESULT_NO_VALID_CONTRACT":"","CP_SCRUB_RESULT_SKIPPED_BY_TE_CONFIDENCE":"","CP_SCRUB_RESULT_OUT_OF_MEMORY":"","CP_SCRUB_RESULT_DOCSEC_FILE":"File encrypted using Checkpoint's Document Security","CP_SCRUB_RESULT_ENCRYPTED_FILE":"contains encrypted data","CP_SCRUB_RESULT_SKIPPED_BY_SCRIPT":"","CP_SCRUB_RESULT_DISK_LIMIT_REACHED":""};
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData for(val in obj)
24 silly fetchPackageMetaData this.strings[val] = obj[val];
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData obj = ["en"];
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData for(val in obj)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData this.browserLangs[val] = obj[val].split(';')[0];
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData this.getStr = function(stringId)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData return this.strings[stringId];
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData this.selectLanguage = function(languageArray)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData for(lang in this.browserLangs)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData if(languageArray[this.browserLangs[lang]] === true)
24 silly fetchPackageMetaData return this.browserLangs[lang];
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if(languageArray[this.browserLangs[lang].substring(0, 2)] === true)
24 silly fetchPackageMetaData return this.browserLangs[lang].substring(0, 2);
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData //If nothing succeeded, return the default.
24 silly fetchPackageMetaData return "en";
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData this.reloadLanguageTo = function(lang, fallbackLang, callback)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData var requestData = {};
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData requestData.lang = lang;
24 silly fetchPackageMetaData requestData.fallbackLang = fallbackLang;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var sAbsoluteURL = PORTAL_IS.TOOLS.getURL("data/GetTranslationData");
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData sendAsynchronousRequest(sAbsoluteURL,
24 silly fetchPackageMetaData flattenObject(requestData),
24 silly fetchPackageMetaData this.asyncReloadLangHandler,
24 silly fetchPackageMetaData this,
24 silly fetchPackageMetaData [callback]);
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData this.asyncReloadLangHandler = function(xhrStatus, xhrResponse, callback)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData if (xhrStatus != 200)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData DEBUG.out('Retreiving translation data failed. ('+xhrStatus+')', DEBUG.ERROR);
24 silly fetchPackageMetaData return;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var obj = JSON.parse(xhrResponse);
24 silly fetchPackageMetaData this.strings = null; //Ensure removing of old values.
24 silly fetchPackageMetaData this.strings = new Array();
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData for(val in obj)
24 silly fetchPackageMetaData this.strings[val] = obj[val];
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData callback();
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData //=============================================================================================
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData //Localization object.
24 silly fetchPackageMetaData L10N_Obj = new __L10N();
24 silly fetchPackageMetaData L10N_Obj.init();
24 silly fetchPackageMetaData PORTAL_IS.L10N.L10N_Obj = L10N_Obj;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData /*
24 silly fetchPackageMetaData ________________________________________________________________________________________________________________________
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData PORTAL IS - ESSENTIALS INCLUSION - END
24 silly fetchPackageMetaData ========================================================================================================================
24 silly fetchPackageMetaData */
24 silly fetchPackageMetaData var noJSCrypto = "true";
24 silly fetchPackageMetaData </script>
24 silly fetchPackageMetaData <script type="text/javascript" src="js/Blob.js"></script>
24 silly fetchPackageMetaData <script type="text/javascript">
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Create namespace
24 silly fetchPackageMetaData window.UserCheck = {};
24 silly fetchPackageMetaData window.UserCheck.tools = {};
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // =======================================================================================
24 silly fetchPackageMetaData function parseSender(value)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData return value.address;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData // =======================================================================================
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // =======================================================================================
24 silly fetchPackageMetaData // Render recipient list from and array.
24 silly fetchPackageMetaData // String[] recipientsArr - Array of recipients.
24 silly fetchPackageMetaData // [int ellipsisLimit] - A string beyond this length will be cut and added ellipsis. Optional, default is 0 - no ellipsis.
24 silly fetchPackageMetaData // [bool useLinebreakes] - Should a line break be added after each recipient. Optional, default is true.
24 silly fetchPackageMetaData function recipientsArr2StrInTable(recipientsArr, ellipsisLimit, useLinebreakes)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData if (ellipsisLimit == undefined)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData ellipsisLimit = 0;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if (useLinebreakes == undefined)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData useEllipsis = true;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var recipientsList = "";
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData for (var i=0; i<recipientsArr.length; i++)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData recipientsList += HTMLEncode(recipientsArr[i].address);
24 silly fetchPackageMetaData if (i < recipientsArr.length-1)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData recipientsList += ", ";
24 silly fetchPackageMetaData if (useLinebreakes)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData recipientsList += "<br>";
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if (ellipsisLimit > 0)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData //recipientsList = Ext.util.Format.ellipsis(recipientsList, ellipsisLimit);
24 silly fetchPackageMetaData recipientsList = recipientsList;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData return recipientsList;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData // =======================================================================================
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // =======================================================================================
24 silly fetchPackageMetaData // Render recipient list from and array.
24 silly fetchPackageMetaData // Sender sender - The sender data.
24 silly fetchPackageMetaData // [int ellipsisLimit] - A string beyond this length will be cut and added ellipsis. Optional, default is 0 - no ellipsis.
24 silly fetchPackageMetaData // [bool useLinebreakes] - Should a line break be added after each recipient. Optional, default is true.
24 silly fetchPackageMetaData function getSenderName(sender, ellipsisLimit)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData var output = "";
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if (ellipsisLimit == undefined)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData ellipsisLimit = 0;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if (sender.name.empty())
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData output = sender.address;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData output = sender.name;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // if (ellipsisLimit > 0)
24 silly fetchPackageMetaData // {
24 silly fetchPackageMetaData // output = Ext.util.Format.ellipsis(output, ellipsisLimit);
24 silly fetchPackageMetaData // }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData return output;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData // =======================================================================================
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // =======================================================================================
24 silly fetchPackageMetaData // Render recipient list from and array.
24 silly fetchPackageMetaData // String sender - The subject string.
24 silly fetchPackageMetaData // [int ellipsisLimit] - A string beyond this length will be cut and added ellipsis. Optional, default is 0 - no ellipsis.
24 silly fetchPackageMetaData // [bool useLinebreakes] - Should a line break be added after each recipient. Optional, default is true.
24 silly fetchPackageMetaData function getSubject(subject, ellipsisLimit)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData var output = subject;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if (ellipsisLimit == undefined)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData ellipsisLimit = 0;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // if (ellipsisLimit > 0)
24 silly fetchPackageMetaData // {
24 silly fetchPackageMetaData // output = Ext.util.Format.ellipsis(output, ellipsisLimit);
24 silly fetchPackageMetaData // }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData return output;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData // =======================================================================================
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // =======================================================================================
24 silly fetchPackageMetaData // tranform recipients array to string
24 silly fetchPackageMetaData function recipientsArr2Str(recipientsArr,type)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData var recipientsList = "";
24 silly fetchPackageMetaData var address = "";
24 silly fetchPackageMetaData var commaNeeded = false;
24 silly fetchPackageMetaData for (var i=0; i<recipientsArr.length; i++)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData if (type == recipientsArr[i].recipientType)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData if (!commaNeeded)
24 silly fetchPackageMetaData commaNeeded = true;
24 silly fetchPackageMetaData else
24 silly fetchPackageMetaData recipientsList += ", ";
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData address = HTMLEncode(recipientsArr[i].address);
24 silly fetchPackageMetaData if (recipientsArr[i].isExternal)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData address = '<span ' + GetDomainColor(recipientsArr[i].address)+' >' + address + '</span>'
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData recipientsList += address;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData return recipientsList;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // =======================================================================================
24 silly fetchPackageMetaData function arr2Str(arr)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData var str = "";
24 silly fetchPackageMetaData var commaNeeded = false;
24 silly fetchPackageMetaData for (var i=0; i<arr.length; i++)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData if (!commaNeeded)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData commaNeeded = true;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData str += ", ";
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData str += arr[i];
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData return str;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData function GetDomainColor(str)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData // var highlightColors = new Array("FFFF00","00FF00","00FFFF","FF00FF","FF0000","FFFF99","99FF99","CCFFFF","FFCCFF", "FF9999")
24 silly fetchPackageMetaData var highlightColors = new Array("FFFF00","FF00FF","FF0000","FFBB00","FF9999");
24 silly fetchPackageMetaData domainName = GetDomainName(str);
24 silly fetchPackageMetaData if (domainName==null) return null;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData hash=0;
24 silly fetchPackageMetaData for (i=0; i<domainName.length; i++)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData hash += domainName.charCodeAt(i);
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData hash = hash % (highlightColors.length);
24 silly fetchPackageMetaData return 'style="background-color: #' + highlightColors[hash] + '; text-decoration: underline;"';
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData /*
24 silly fetchPackageMetaData // =======================================================================================
24 silly fetchPackageMetaData UserCheck.tools.clearContainer = function(containerId)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData DEBUG.out("Clear container: "+containerId);
24 silly fetchPackageMetaData var container = Ext.getCmp(containerId);
24 silly fetchPackageMetaData if ((container) && (container.items))
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData container.items.each(
24 silly fetchPackageMetaData function(item)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData container.remove(item, true);
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData );
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData // =======================================================================================
24 silly fetchPackageMetaData */
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Override poral_is error handler.
24 silly fetchPackageMetaData //=============================================================================================
24 silly fetchPackageMetaData window.genericTimeoutHandler = function(portalException)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData DEBUG.out("UserCheck::genericTimeoutHandler.");
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if ((portalException == undefined) || (portalException == null))
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData portalException = new PortalException();
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Assign action to the Ok button.
24 silly fetchPackageMetaData // The event is added in order to get the exception, if it is set, that is set as the error message OK button attribute. see showPortalErrorMessage
24 silly fetchPackageMetaData postErrorHandler = function(event)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData // Check if redirected due to timeout.
24 silly fetchPackageMetaData if (getCookie("isRedirectedDueTimeout") == "1")
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData // Delete the cookie to allow future errors.
24 silly fetchPackageMetaData setCookie("isRedirectedDueTimeout", "0", 0);
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // TODO: Redirect to error page.
24 silly fetchPackageMetaData return;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Set cookie in order to prevent error loops.
24 silly fetchPackageMetaData setCookie("isRedirectedDueTimeout", "1", 5*60);
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData genericPostErrorHandler(event);
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Reload the page.
24 silly fetchPackageMetaData document.location.href=document.location.href;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // TODO: Get message from resource bundle.
24 silly fetchPackageMetaData //var errMsg = "Your session has expired or timed out.\nYou will be redirected to the login page.\n\n";
24 silly fetchPackageMetaData showPortalErrorMessage(portalException, postErrorHandler, true);
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData //=============================================================================================
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData //=============================================================================================
24 silly fetchPackageMetaData window.genericErrorHandler = function(portalException, callback)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData DEBUG.out("UserCheck::genericErrorHandler.");
24 silly fetchPackageMetaData if ((portalException == undefined) || (portalException == null))
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData portalException = new PortalException();
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if (isNothingness(callback))
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData callback = new Callback();
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Assign action to the Ok button.
24 silly fetchPackageMetaData // The event is added in order to get the exception, if it is set, that is set as the error message OK button attribute. see showPortalErrorMessage
24 silly fetchPackageMetaData postErrorHandler = function(event)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData genericPostErrorHandler(event);
24 silly fetchPackageMetaData callback.call();
24 silly fetchPackageMetaData // No reload of the page.
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData showPortalErrorMessage(portalException, postErrorHandler, true);
24 silly fetchPackageMetaData return true; // This is required for the execption to stop from being passed to the browser.
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData //=============================================================================================
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData //=============================================================================================
24 silly fetchPackageMetaData window.genericPostErrorHandler = function(event)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData DEBUG.out("UserCheck::genericPostErrorHandler.");
24 silly fetchPackageMetaData // Just hide the error.
24 silly fetchPackageMetaData hidePortalErrorMessage();
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData //=============================================================================================
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData //=============================================================================================
24 silly fetchPackageMetaData UserCheck.tools.sendErrorReport = function(userDesc, callback)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData DEBUG.out("UserCheck.tools.sendErrorReport in.");
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var sAbsoluteURL = getURL("data/submitErrorReport");
24 silly fetchPackageMetaData var report = encodeURIComponent(DEBUG.compileErrorReport());
24 silly fetchPackageMetaData var userDesc = encodeURIComponent(userDesc);
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var sendErrorReportCallback = new Callback();
24 silly fetchPackageMetaData sendErrorReportCallback.methodReference = UserCheck.tools.handleErrorReportResponse;
24 silly fetchPackageMetaData sendErrorReportCallback.args.push(callback);
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Send report with no error handlers.
24 silly fetchPackageMetaData PORTAL_IS.AJAX_MGR.sendAsyncReq(sAbsoluteURL, "report="+report+"&userDesc="+userDesc, sendErrorReportCallback, null, null, "Sending of error report failed.");
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Set error flag.
24 silly fetchPackageMetaData PORTAL_IS.TOOLS.errorMsgShown = false;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData //=============================================================================================
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData //=============================================================================================
24 silly fetchPackageMetaData UserCheck.tools.handleErrorReportResponse = function(xhrStatus, xhrResponse, callback)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData DEBUG.out("UserCheck.tools.handleErrorReportResponse in.");
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Set error flag.
24 silly fetchPackageMetaData PORTAL_IS.TOOLS.errorMsgShown = false;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if (isNothingness(callback))
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData callback = new Callback();
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if (xhrStatus != 200)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData // TODO: Handle error.
24 silly fetchPackageMetaData DEBUG.out('Submitting error report failed. ('+xhrStatus+')', DEBUG.ERROR);
24 silly fetchPackageMetaData callback.call();
24 silly fetchPackageMetaData showPortalMessage("Sending of error report failed.");
24 silly fetchPackageMetaData return;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData callback.call();
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData showPortalMessage("Error report was sent successfully.\nThank you for your support.", null, UserCheck.MESSAGE_TYPE.Confirmation);
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData //=============================================================================================
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData //=============================================================================================
24 silly fetchPackageMetaData UserCheck.tools.showErrorReport = function(callback)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData DEBUG.out("UserCheck.tools.showErrorReport in.");
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Create new callback with send report and store previous callback in it.
24 silly fetchPackageMetaData submitCallback = new Callback();
24 silly fetchPackageMetaData submitCallback.methodReference = DEBUG.sendErrorReport;
24 silly fetchPackageMetaData submitCallback.args = [callback];
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Create new callback for cancel.
24 silly fetchPackageMetaData cancelCallback = new Callback();
24 silly fetchPackageMetaData cancelCallback.methodReference = function()
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData // Clear error flag.
24 silly fetchPackageMetaData PORTAL_IS.TOOLS.errorMsgShown = false;
24 silly fetchPackageMetaData callback.call();
24 silly fetchPackageMetaData };
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Hide any opened boxes.
24 silly fetchPackageMetaData PORTAL_IS.TOOLS.hideGeneralContainer();
24 silly fetchPackageMetaData PORTAL_IS.TOOLS.hideDialog();
24 silly fetchPackageMetaData hidePortalMessage();
24 silly fetchPackageMetaData hidePortalErrorMessage();
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData PORTAL_IS.TOOLS.showDialog( "Please describe the encountered problem in the text box below.",
24 silly fetchPackageMetaData "NOTICE: The report might include personal information from your mail items.\nThe report will not include your credentials.",
24 silly fetchPackageMetaData "I was trying to (e.g. review an email):\n\nWork flow which led to this error (e.g. access via email link):\n\nI am unable to:",
24 silly fetchPackageMetaData "Report an error",
24 silly fetchPackageMetaData submitCallback, cancelCallback, null, null, null, null, true);
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Set error flag.
24 silly fetchPackageMetaData PORTAL_IS.TOOLS.errorMsgShown = true;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData //=============================================================================================
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData //=============================================================================================
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData //=============================================================================================
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData DEBUG.showErrorReport = UserCheck.tools.showErrorReport;
24 silly fetchPackageMetaData DEBUG.sendErrorReport = UserCheck.tools.sendErrorReport;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData UserCheck.tools.oTimeoutManager =
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData timerID: -1,
24 silly fetchPackageMetaData startTimeoutTimer: function(duration, callback)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData var milisecs = duration * 1000;
24 silly fetchPackageMetaData if (milisecs > 2147483646)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData milisecs = 2147483646;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData DEBUG.out("UserCheck.tools.TimeoutManager: Starting timer for " + duration + " seconds.");
24 silly fetchPackageMetaData window.TimeoutManagerCallback = callback;
24 silly fetchPackageMetaData this.timerID = setTimeout("this.TimeoutManagerCallback();", milisecs);
24 silly fetchPackageMetaData },
24 silly fetchPackageMetaData stopTimeoutTimer: function()
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData clearTimeout(timerID);
24 silly fetchPackageMetaData timerID = -1;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData };
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData UserCheck.DataObj = {};
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // TODO: This should be defined as an "interface" class and other view managers should implement it.
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // UC's view manager.
24 silly fetchPackageMetaData window.UCViewManager = function()
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData this.lastRenderedCustomContentContainers = new Array();
24 silly fetchPackageMetaData this.defaultContainer = 'portal_main_view';
24 silly fetchPackageMetaData this.ignoreHashChange = false;
24 silly fetchPackageMetaData this.wait = null;
24 silly fetchPackageMetaData this.requestParams = null;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Hash to view mapping, enables us to set display another value than the actual view name.
24 silly fetchPackageMetaData //==================================================================================================================
24 silly fetchPackageMetaData this.hashViewMap = new Array();
24 silly fetchPackageMetaData // Hash name View name
24 silly fetchPackageMetaData //__________________________________________________________________________________________________________________
24 silly fetchPackageMetaData this.hashViewMap["UserAction"] = "UserAction";
24 silly fetchPackageMetaData this.hashViewMap["MainWithMenuView"] = "MainWithMenuView";
24 silly fetchPackageMetaData this.hashViewMap["Menu"] = "Menu";
24 silly fetchPackageMetaData this.hashViewMap["Logout"] = "Logout";
24 silly fetchPackageMetaData this.hashViewMap["MainView"] = "MainView";
24 silly fetchPackageMetaData this.hashViewMap["Error"] = "Error";
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Get View name from Hash name.
24 silly fetchPackageMetaData this.hash2View = function(hash)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData var view = this.hashViewMap[hash];
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if (isNothingness(view))
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData view = "UserAction";
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData return view;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Get Hash name from View name.
24 silly fetchPackageMetaData this.view2Hash = function(view)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData var hash = "UserAction";
24 silly fetchPackageMetaData for (key in this.hashViewMap)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData if (this.hashViewMap[key] == view)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData var hash = key;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData return hash;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData //==================================================================================================================
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Initialize view manager.
24 silly fetchPackageMetaData //=============================================================================================
24 silly fetchPackageMetaData this.init = function()
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData DEBUG.out("UCViewManager::init");
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Bind history change handler.
24 silly fetchPackageMetaData $(window).bind('hashchange', viewManager.handleHistoryChange);
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Check address bar's hash and set desired view if exists.
24 silly fetchPackageMetaData var desiredView = this.parseHash().view;
24 silly fetchPackageMetaData if (isNothingness(desiredView))
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData desiredView = "";
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData DEBUG.out("UCViewManager::init, desired view: [" + desiredView + "]");
24 silly fetchPackageMetaData this.gotoNextView(desiredView);
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData //=============================================================================================
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Handle history changes (back/reload).
24 silly fetchPackageMetaData // Overriding default handling.
24 silly fetchPackageMetaData //=============================================================================================
24 silly fetchPackageMetaData this.handleHistoryChange = function(e, ui)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData // In some cases the hash is changed and no view load is required, checking if so.
24 silly fetchPackageMetaData if (!viewManager.ignoreHashChange && ui != undefined)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData // Parse view from hash.
24 silly fetchPackageMetaData var desiredView = viewManager.parseHash().view;
24 silly fetchPackageMetaData DEBUG.out("UCViewManager::handleHistoryChange, desired view:" + desiredView);
24 silly fetchPackageMetaData viewManager.gotoNextView(desiredView);
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData DEBUG.out("UCViewManager::handleHistoryChange, hash changed ignored.");
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Reset the ignore flag.
24 silly fetchPackageMetaData viewManager.ignoreHashChange = false;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData //=============================================================================================
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Queries the server for next desired view and than call for rendering it.
24 silly fetchPackageMetaData // Will call upon callback when done rendering the view.
24 silly fetchPackageMetaData //=============================================================================================
24 silly fetchPackageMetaData this.gotoNextView = function(requestedView, callback)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData DEBUG.out("UCViewManager::gotoNextView");
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if (isNothingness(callback))
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData callback = new Callback();
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Check what is the next view.
24 silly fetchPackageMetaData var sAbsoluteURL = PORTAL_IS.TOOLS.getURL("GetNextView");
24 silly fetchPackageMetaData var parameters = (isNothingness(requestedView)) ? ("") : ("requestedView=" + encodeURIComponent(requestedView));
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var gotoNextViewCallback = new Callback();
24 silly fetchPackageMetaData gotoNextViewCallback.methodReference = this.handleGotoNextViewRequest;
24 silly fetchPackageMetaData gotoNextViewCallback.thisArgument = this;
24 silly fetchPackageMetaData gotoNextViewCallback.args = [callback];
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData PORTAL_IS.AJAX_MGR.sendAsyncReq(sAbsoluteURL, parameters, gotoNextViewCallback);
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData //=============================================================================================
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Handle next view query.
24 silly fetchPackageMetaData //=============================================================================================
24 silly fetchPackageMetaData this.handleGotoNextViewRequest = function(xhrStatus, xhrResponse, callback)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData DEBUG.out("UCViewManager::handleGotoNextViewRequest");
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if (isNothingness(callback))
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData callback = new Callback();
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if (xhrStatus != 200)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData DEBUG.out('Retreiving next view failed. ('+xhrStatus+')', DEBUG.ERROR);
24 silly fetchPackageMetaData callback.call();
24 silly fetchPackageMetaData return;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var nextViewJSONObj = JSON.parse(xhrResponse);
24 silly fetchPackageMetaData var nextView = nextViewJSONObj.view;
24 silly fetchPackageMetaData DEBUG.out("UCViewManager::handleGotoNextViewRequest, next view:" + nextView);
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Extract the data (request params) from hash and relay it onto next hash.
24 silly fetchPackageMetaData // As hash changing handler will be passed back to this method we set the Ignore flag to TRUE
24 silly fetchPackageMetaData // and call for the gotoView method.
24 silly fetchPackageMetaData viewManager.changeHash(nextView, viewManager.parseHash().data, true);
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData viewManager.gotoView(nextView, callback);
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData //=============================================================================================
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Get view contents (CSS, JS and HTML).
24 silly fetchPackageMetaData // Will call upon callback when done rendering the view.
24 silly fetchPackageMetaData //=============================================================================================
24 silly fetchPackageMetaData this.gotoView = function(view, callback)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData DEBUG.out("UCViewManager::gotoView view: ["+view+"]");
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if (callback == undefined)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData callback = new Callback();
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var hash = this.parseHash().view;
24 silly fetchPackageMetaData var parameters = (hash == "") ? ("view="+encodeURIComponent(hash)) : ( "requestedView=" + encodeURIComponent(view) + "&view="+encodeURIComponent(hash) );
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData sendAsynchronousRequest(PORTAL_IS.TOOLS.getURL("viewManager/GetViewData"),
24 silly fetchPackageMetaData parameters,
24 silly fetchPackageMetaData this.handleNewView,
24 silly fetchPackageMetaData this,
24 silly fetchPackageMetaData [callback]);
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData //=============================================================================================
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Handle new view rendering.
24 silly fetchPackageMetaData //=============================================================================================
24 silly fetchPackageMetaData this.handleNewView = function(xhrStatus, xhrResponse, callback)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData if (callback == undefined)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData callback = new Callback();
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if (xhrStatus != 200)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData // TODO: Handle error.
24 silly fetchPackageMetaData DEBUG.out('Retreiving view failed. ('+xhrStatus+')', DEBUG.ERROR);
24 silly fetchPackageMetaData callback.call();
24 silly fetchPackageMetaData return;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var newViewJSONObj = JSON.parse(xhrResponse);
24 silly fetchPackageMetaData var newView = newViewJSONObj.view;
24 silly fetchPackageMetaData DEBUG.out("UCViewManager::handleNewView, Parsed from JSON - view:" + newView);
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var useDefaultContainerId = true;
24 silly fetchPackageMetaData var requiredContainerId = "";
24 silly fetchPackageMetaData var requiredView = "";
24 silly fetchPackageMetaData var requireSecureConnection = false;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData switch (newView)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData default: // View will be rendered into main page view.
24 silly fetchPackageMetaData useDefaultContainerId = true;
24 silly fetchPackageMetaData requiredContainerId = this.defaultContainer;
24 silly fetchPackageMetaData break;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Check if in https, redirect if not.
24 silly fetchPackageMetaData if ((requireSecureConnection) && (location.protocol.toLowerCase() == 'http:'))
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData newLocation = location.href.replace(/http:/i, "https:");
24 silly fetchPackageMetaData location.href = newLocation;
24 silly fetchPackageMetaData return;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var containerId = this.defaultContainer;
24 silly fetchPackageMetaData if (!useDefaultContainerId)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData containerId = requiredContainerId;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData //var container = Ext.getCmp(containerId);
24 silly fetchPackageMetaData var container = document.getElementById(containerId);
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if (container != undefined)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData DEBUG.out('Render new view ('+newViewJSONObj.view+') into [' + (useDefaultContainerId ? "DefaultContainer" : requiredContainerId) + "].");
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Render CSS. - Not needed, all CSS loads from one blob file.
24 silly fetchPackageMetaData //evaluateCSS(newViewJSONObj.css, "");
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Clear existing content.
24 silly fetchPackageMetaData container.innerHTML = "";
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // If the html content is not empty, render it into a new pane.
24 silly fetchPackageMetaData container.innerHTML = newViewJSONObj.html;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Render JavaScript Content.
24 silly fetchPackageMetaData evaluateJavaScript(newViewJSONObj.javascript);
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else if (requiredContainerId == this.defaultContainer)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData DEBUG.out('Default view is missing and will be rendered...');
24 silly fetchPackageMetaData this.renderDefaultView();
24 silly fetchPackageMetaData this.handleNewView(xhrStatus, xhrResponse, callback);
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else // The container is not present and needs to be rendered first.
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData DEBUG.out('Required view ('+requiredContainerId+') is missing and needs to be rendered first.');
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Set the previous view results in a callback, it will be called when finished rendering of the login sequence page.
24 silly fetchPackageMetaData var requiredViewCallback = new Callback();
24 silly fetchPackageMetaData requiredViewCallback.methodReference = this.handleNewView;
24 silly fetchPackageMetaData requiredViewCallback.thisArgument = this;
24 silly fetchPackageMetaData requiredViewCallback.args = [200, xhrResponse]; // Set fake status and response.
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Request specific view.
24 silly fetchPackageMetaData this.gotoView(requiredView, requiredViewCallback);
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // TODO: detect loops.
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Done here, call the callback.
24 silly fetchPackageMetaData //this.wait.hide();
24 silly fetchPackageMetaData callback.call();
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData //=============================================================================================
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // CUSTOM CONTENT RELATED METHODS
24 silly fetchPackageMetaData // _________________________________________________________________________________________________________________
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Get the view's custom Content.
24 silly fetchPackageMetaData //=============================================================================================
24 silly fetchPackageMetaData this.getViewCustomContent = function(view)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData this.clearLastCustomContent();
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var sAbsoluteURL = PORTAL_IS.TOOLS.getURL("JSONViewData/GetViewCustomContent");
24 silly fetchPackageMetaData sendAsynchronousRequest(sAbsoluteURL,
24 silly fetchPackageMetaData "view="+view,
24 silly fetchPackageMetaData this.renderCustomContent,
24 silly fetchPackageMetaData this,
24 silly fetchPackageMetaData []);
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData //=============================================================================================
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Render the custom content.
24 silly fetchPackageMetaData //=============================================================================================
24 silly fetchPackageMetaData this.renderCustomContent = function(xhrStatus, xhrResponse, callbackObj)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData DEBUG.out('Render custom content.');
24 silly fetchPackageMetaData callback = new Callback(callbackObj);
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if (xhrStatus != 200)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData // TODO: Handle error.
24 silly fetchPackageMetaData DEBUG.out('Retreiving custom content failed. ('+xhrStatus+')', DEBUG.ERROR);
24 silly fetchPackageMetaData callback.call();
24 silly fetchPackageMetaData return;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // The container Id is: "CustomContent_<VIEW NAME>_<RESOURCE KEY>".
24 silly fetchPackageMetaData // For example: the "ISW" view and the resource key of "top" will be rendered into "CustomContent_ISW_top".
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var newCustomContentJSONObj = JSON.parse(xhrResponse);
24 silly fetchPackageMetaData var keyArr = newCustomContentJSONObj.keyArr;
24 silly fetchPackageMetaData var view = newCustomContentJSONObj.view
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Override view.
24 silly fetchPackageMetaData switch (view)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData case "ICS": // No brake, group these views.
24 silly fetchPackageMetaData case "Authentication":
24 silly fetchPackageMetaData case "ISW":
24 silly fetchPackageMetaData case "MultiChallenge":
24 silly fetchPackageMetaData case "IswEntry":
24 silly fetchPackageMetaData var usedView = "LoginSequencePage";
24 silly fetchPackageMetaData break;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData default:
24 silly fetchPackageMetaData var usedView = view;
24 silly fetchPackageMetaData break;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Iterate on each of the custom content object.
24 silly fetchPackageMetaData var customContent, containerId, key;
24 silly fetchPackageMetaData //for (var key in keyMap)
24 silly fetchPackageMetaData for (var i=0; i<keyArr.length; i++)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData key = keyArr[i][0];
24 silly fetchPackageMetaData customContent = keyArr[i][1];
24 silly fetchPackageMetaData containerId = "CustomContent_"+usedView+"_"+key;
24 silly fetchPackageMetaData DEBUG.out('Render custom content: usedView:['+usedView+"] into:["+containerId+"]");
24 silly fetchPackageMetaData this.evaluateCustomContent(customContent, containerId);
24 silly fetchPackageMetaData this.lastRenderedCustomContentContainers.push(containerId);
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Call the callback.
24 silly fetchPackageMetaData callback.call();
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Encapsulate conditional rendering of the custom content.
24 silly fetchPackageMetaData this.evaluateCustomContent = function(customContent, containerId)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData destinationRef = document.getElementById(containerId);
24 silly fetchPackageMetaData if ( (destinationRef != null) && (destinationRef != undefined) )
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData evaluateHTMLContent(customContent, destinationRef);
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData //=============================================================================================
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Clear last rendered containers.
24 silly fetchPackageMetaData //=============================================================================================
24 silly fetchPackageMetaData this.clearLastCustomContent = function()
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData for (var containerIndex in this.lastRenderedCustomContentContainers)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData this.evaluateCustomContent("&nbsp;", this.lastRenderedCustomContentContainers[containerIndex]);
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData this.lastRenderedCustomContentContainers = new Array();
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData //=============================================================================================
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Render default view.
24 silly fetchPackageMetaData //=============================================================================================
24 silly fetchPackageMetaData this.renderDefaultView = function()
24 silly fetchPackageMetaData {}
24 silly fetchPackageMetaData //==================================================================================================================
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData //==================================================================================================================
24 silly fetchPackageMetaData this.logoutButtonHandler = function()
24 silly fetchPackageMetaData {}
24 silly fetchPackageMetaData //==================================================================================================================
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // DEPRECATED METHODS
24 silly fetchPackageMetaData // _________________________________________________________________________________________________________________
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // DEPRECATED, use viewManager.gotoNextView instead.
24 silly fetchPackageMetaData //==================================================================================================================
24 silly fetchPackageMetaData this.gotoNextState = function(callback)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData this.gotoNextView(null, callback);
24 silly fetchPackageMetaData return;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData //==================================================================================================================
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Extend ViewManager (Portal IS).
24 silly fetchPackageMetaData UCViewManager.prototype = new ViewManager();
24 silly fetchPackageMetaData window.viewManager = new UCViewManager();
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData </script>
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData <title>Check Point UserCheck</title>
24 silly fetchPackageMetaData </head>
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData <body class="usercheck_body_background_class" unselectable="on">
24 silly fetchPackageMetaData <noscript>
24 silly fetchPackageMetaData This portal requires browser which support JavaScript.<br>Please make sure that you are using an updated browser and that JavaScript is enabled. </noscript>
24 silly fetchPackageMetaData <div id='portalErrorMessage' class="portalErrorMessageDivHide">
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData <table cellpadding="0px" cellspacing="0px" class="portalErrorMessageTableContainer" width="100%">
24 silly fetchPackageMetaData <tr>
24 silly fetchPackageMetaData <td align="center">
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData <table cellpadding="0px" cellspacing="0px" class="portalErrorMessageTable">
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData <tr id="portalErrorMessage_title_container_row" class="portalMessage_title show" width="100%">
24 silly fetchPackageMetaData <td id="portalErrorMessage_title_container" height="10px" valign="middle" align="left" colspan="2">&nbsp;</td>
24 silly fetchPackageMetaData </tr>
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData <tr>
24 silly fetchPackageMetaData <td id="portalErrorMessage_container" align="left" style="padding: 10px;" colspan="2">&nbsp;</td>
24 silly fetchPackageMetaData </tr>
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData <tr>
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData <td>
24 silly fetchPackageMetaData <table cellpadding="0px" cellspacing="0px" width="100%"style=" padding: 10px;">
24 silly fetchPackageMetaData <tr>
24 silly fetchPackageMetaData <td id="portalMessage_error_report_container" align="left" valign="buttom" class="hide">
24 silly fetchPackageMetaData <span id="portalMessage_error_report_link" onclick="DEBUG.showErrorReport();" class="portal_link" style="left: 10px;">
24 silly fetchPackageMetaData Send error report </span>
24 silly fetchPackageMetaData </td>
24 silly fetchPackageMetaData <td id="portalMessage_error_button_container" align="right" height="10px;" valign="buttom">
24 silly fetchPackageMetaData <button id="portalErrorMessage_button" class="portalErrorMessage_button" onclick="hidePortalErrorMessage();">
24 silly fetchPackageMetaData OK </button>
24 silly fetchPackageMetaData </td>
24 silly fetchPackageMetaData </tr>
24 silly fetchPackageMetaData </table>
24 silly fetchPackageMetaData </td>
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData </tr>
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData </table>
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData </td>
24 silly fetchPackageMetaData </tr>
24 silly fetchPackageMetaData </table>
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData </div>
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData <div id='portalMessage' class="portalMessageDivHide">
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData <table cellpadding="0px" cellspacing="0px" class="portalMessageTableContainer" width="100%">
24 silly fetchPackageMetaData <tr>
24 silly fetchPackageMetaData <td align="center">
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData <table cellpadding="0px" cellspacing="0px" class="portalMessageTable">
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData <tr id="portalMessage_title_container_row" class="portalMessage_title show">
24 silly fetchPackageMetaData <td id="portalMessage_title_container" class="portalMessage_title_td" valign="middle" align="left">
24 silly fetchPackageMetaData &nbsp;
24 silly fetchPackageMetaData </td>
24 silly fetchPackageMetaData </tr>
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData <tr>
24 silly fetchPackageMetaData <td id="portalMessage_container" align="left" style="padding: 10px;">
24 silly fetchPackageMetaData &nbsp;
24 silly fetchPackageMetaData </td>
24 silly fetchPackageMetaData </tr>
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData <tr id="portalMessage_textarea_container_row" class="hide">
24 silly fetchPackageMetaData <td id="portalMessage_textarea_container" align="left" style="padding: 10px;">
24 silly fetchPackageMetaData </td>
24 silly fetchPackageMetaData </tr>
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData <tr id="portalMessage_validation_message_container_row" class="show">
24 silly fetchPackageMetaData <td id="portalMessage_validation_message_container" align="left" class="portalMessage_validation_submessage" style="padding: 10px;">
24 silly fetchPackageMetaData &nbsp;
24 silly fetchPackageMetaData </td>
24 silly fetchPackageMetaData </tr>
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData <tr id="portalMessage_submessage_container_row" class="hide">
24 silly fetchPackageMetaData <td id="portalMessage_submessage_container" align="left" class="portalMessage_submessage" style="padding: 10px;">
24 silly fetchPackageMetaData &nbsp;
24 silly fetchPackageMetaData </td>
24 silly fetchPackageMetaData </tr>
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData <tr>
24 silly fetchPackageMetaData <td align="center" height="10px;" valign="buttom" style="padding: 10px;" colspan="2">
24 silly fetchPackageMetaData <div id="portalMessage_ok_button_container" class="show" style="text-align: right;">
24 silly fetchPackageMetaData <button id="portalMessage_button" class="portalMessage_button" onclick="hidePortalMessage();">
24 silly fetchPackageMetaData OK </button>
24 silly fetchPackageMetaData </div>
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData <div id="portalMessage_bool_button_container" class="hide">
24 silly fetchPackageMetaData <button id="portalMessage_yes_button" class="portalMessage_button" onclick="hidePortalMessage();">
24 silly fetchPackageMetaData BUTTON.YES </button>
24 silly fetchPackageMetaData &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
24 silly fetchPackageMetaData <button id="portalMessage_no_button" class="portalMessage_button" onclick="hidePortalMessage();">
24 silly fetchPackageMetaData BUTTON.NO </button>
24 silly fetchPackageMetaData </div>
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData <div id="portalMessage_submit_button_container" class="hide">
24 silly fetchPackageMetaData <button id="portalMessage_submit_button" class="portalMessage_button" onclick="hidePortalMessage();">
24 silly fetchPackageMetaData BUTTON.SUBMIT </button>
24 silly fetchPackageMetaData &nbsp;&nbsp;&nbsp;
24 silly fetchPackageMetaData <button id="portalMessage_cancel_button" class="portalMessage_button" onclick="hidePortalMessage();">
24 silly fetchPackageMetaData Cancel </button>
24 silly fetchPackageMetaData </div>
24 silly fetchPackageMetaData </td>
24 silly fetchPackageMetaData </tr>
24 silly fetchPackageMetaData </table>
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData </td>
24 silly fetchPackageMetaData </tr>
24 silly fetchPackageMetaData </table>
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData </div>
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData <div id='portalGeneralContainer' class="portalMessageDivHide">
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData <table cellpadding="0px" cellspacing="0px" class="portalMessageTableContainer" width="100%">
24 silly fetchPackageMetaData <tr>
24 silly fetchPackageMetaData <td align="center">
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData <table cellpadding="0px" cellspacing="0px" class="portalMessageTable">
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData <tr id="portalGeneralContainer_title_container_row" class="portalMessage_title show" width="100%">
24 silly fetchPackageMetaData <td id="portalGeneralContainer_title_container" height="10px" valign="middle" align="left">
24 silly fetchPackageMetaData &nbsp;
24 silly fetchPackageMetaData </td>
24 silly fetchPackageMetaData </tr>
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData <tr>
24 silly fetchPackageMetaData <td id="portalGeneralContainer_container" align="left" style="padding: 10px;">
24 silly fetchPackageMetaData &nbsp;
24 silly fetchPackageMetaData </td>
24 silly fetchPackageMetaData </tr>
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData </table>
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData </td>
24 silly fetchPackageMetaData </tr>
24 silly fetchPackageMetaData </table>
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData </div>
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData <div id='PortalErrorScreenShader' class="screenShaderHide">
24 silly fetchPackageMetaData <table cellpadding="0px" cellspacing="0px" width="100%" height="100%">
24 silly fetchPackageMetaData <tr>
24 silly fetchPackageMetaData <td>&nbsp;</td>
24 silly fetchPackageMetaData </tr>
24 silly fetchPackageMetaData </table>
24 silly fetchPackageMetaData </div>
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData <div id='PortalScreenShader' class="screenShaderHide">
24 silly fetchPackageMetaData <table cellpadding="0px" cellspacing="0px" width="100%" height="100%">
24 silly fetchPackageMetaData <tr>
24 silly fetchPackageMetaData <td>&nbsp;</td>
24 silly fetchPackageMetaData </tr>
24 silly fetchPackageMetaData </table>
24 silly fetchPackageMetaData </div>
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData <div id="portal_main_view" class="div_expanded" unselectable="on">
24 silly fetchPackageMetaData <table height="100%" width="100%" border="0" cellpadding="0" cellspacing="0" class="">
24 silly fetchPackageMetaData <tr>
24 silly fetchPackageMetaData <td id="portal_center_div" valign="top" unselectable="on" class="usercheck_main_background_class">
24 silly fetchPackageMetaData <div id="portal_top_pane_div" class="usercheck_header_class">
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData <!--position: fixed; bottom: -1px; left: 50%; margin-left: -435px; -->
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData <table width="100%" cellpadding="0" cellspacing="0" class="usercheck_header_table_class usercheck_content_table_class">
24 silly fetchPackageMetaData <tr>
24 silly fetchPackageMetaData <td class="usercheck_header_left_class" unselectable="on">
24 silly fetchPackageMetaData </td>
24 silly fetchPackageMetaData <td class="usercheck_header_center_class" unselectable="on">
24 silly fetchPackageMetaData <div class="usercheck_page_title_class" id="usercheck_page_title" unselectable="on" >UserCheck</div>
24 silly fetchPackageMetaData </td>
24 silly fetchPackageMetaData <td id="usercheck_header_right_logo" class="usercheck_header_right_class" unselectable="on">
24 silly fetchPackageMetaData <img class="usercheck_company_logo_class" id="usercheck_company_logo" ></img>
24 silly fetchPackageMetaData </td>
24 silly fetchPackageMetaData <td id="usercheck_header_right_empty" class="usercheck_header_right_empty_class" unselectable="on">
24 silly fetchPackageMetaData </td>
24 silly fetchPackageMetaData </tr>
24 silly fetchPackageMetaData </table>
24 silly fetchPackageMetaData </div>
24 silly fetchPackageMetaData <div style="">&nbsp;</div><div style="">&nbsp;</div><div style="">&nbsp;</div>
24 silly fetchPackageMetaData <div style="text-align: center;" unselectable="on">
24 silly fetchPackageMetaData <table id="usercheck_content_table" cellpadding="0" cellspacing="0" class="usercheck_content_table_class">
24 silly fetchPackageMetaData <tr>
24 silly fetchPackageMetaData <td rowspan="3" valign="top" class="usercheck_message_icon_column"><div class="usercheck_message_icon_class" id="usercheck_img_div" unselectable="on">&nbsp;</div></td>
24 silly fetchPackageMetaData <td><div id="usercheck_title_div" class="usercheck_title_class" unselectable="on">&nbsp;</div></td>
24 silly fetchPackageMetaData </tr>
24 silly fetchPackageMetaData <tr>
24 silly fetchPackageMetaData <td><div id="usercheck_main_div" class="usercheck_message_class" unselectable="on">&nbsp;</div></td>
24 silly fetchPackageMetaData </tr>
24 silly fetchPackageMetaData <tr>
24 silly fetchPackageMetaData <td><div id="usercheck_error_div" unselectable="on">&nbsp;</div></td>
24 silly fetchPackageMetaData </tr>
24 silly fetchPackageMetaData <tr>
24 silly fetchPackageMetaData <td colspan="2" style="text-align: center;" unselectable="on">
24 silly fetchPackageMetaData <table style="margin-right: -10px; width: 50%; float: right;"><tr><td>
24 silly fetchPackageMetaData <center>
24 silly fetchPackageMetaData <div id="usercheck_cancel_div" class="usercheck_ok_button_div_class">&nbsp;</div>
24 silly fetchPackageMetaData </center>
24 silly fetchPackageMetaData </td><td>
24 silly fetchPackageMetaData <center>
24 silly fetchPackageMetaData <div id="usercheck_ok_div" class="usercheck_ok_button_div_class">&nbsp;</div>
24 silly fetchPackageMetaData </center>
24 silly fetchPackageMetaData </td></tr></table>
24 silly fetchPackageMetaData </td>
24 silly fetchPackageMetaData </tr>
24 silly fetchPackageMetaData </table></div>
24 silly fetchPackageMetaData </td>
24 silly fetchPackageMetaData </tr>
24 silly fetchPackageMetaData <tr>
24 silly fetchPackageMetaData <td id ="usercheck_footer_td" class="usercheck_footer_class usercheck_footer_height_class">
24 silly fetchPackageMetaData <div id="portal_bottom_pane_div">
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData <!--position: fixed; bottom: -1px; left: 50%; margin-left: -435px; -->
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData <table id="footer_table_logo" cellpadding="0" cellspacing="0" class="usercheck_footer_table_class footer_no_logo">
24 silly fetchPackageMetaData <tr>
24 silly fetchPackageMetaData <td class="usercheck_footer_height_class">
24 silly fetchPackageMetaData <div id="usercheck_language_selection_div" class="usercheck_lang_select_div_class" style="display: none;">
24 silly fetchPackageMetaData Language: <select id="usercheck_language_selection" class="usercheck_lang_select_class" onchange="javascript:window.oUserAction.handleLanguageChange();">
24 silly fetchPackageMetaData </select>
24 silly fetchPackageMetaData </div>
24 silly fetchPackageMetaData </td>
24 silly fetchPackageMetaData </tr>
24 silly fetchPackageMetaData </table> </div>
24 silly fetchPackageMetaData </td>
24 silly fetchPackageMetaData </tr>
24 silly fetchPackageMetaData </table>
24 silly fetchPackageMetaData </div>
24 silly fetchPackageMetaData </body>
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData <script type="text/javascript">
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData //Continue the background image on IE6-7 graphics design.
24 silly fetchPackageMetaData if(window.browserDetails.browserType == window.BrowserType.IE && window.browserDetails.browserVersion <= 7 && (document.documentMode === undefined || document.documentMode <= 7))
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData var footer_td = document.getElementById('usercheck_footer_td');
24 silly fetchPackageMetaData footer_td.setAttribute("className", footer_td.getAttribute("className") + " usercheck_main_background_class");
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData UserCheck.DataObj.IID = "6562BAB3-CB54-35B8-C19D-29D4AE36E696";
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData UserCheck.DataObj.frame = 0;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData /*this is a common object for PortalMain and PortalMainDlp. functions here should be empty */
24 silly fetchPackageMetaData window.UserActionCommon = function()
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData this.DlpHttpLearning = function(adminMessage,HttpLearningEnabled)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData this.DlpHideCancelBtn = function(action)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData window.oUserActionCommon = new window.UserActionCommon();
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var g_userID = "";
24 silly fetchPackageMetaData var g_refreshFiles = false;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData window.UserAction = function()
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData this.incidentObject = {};
24 silly fetchPackageMetaData this.textAreaText = "";
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData this.getCorrectClass = function()
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData var correctClass = "class";
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData //Choose the correct class attribute name (in IE6-7 we need "className" instead of "class") according to IE version - but check for compatibility first!
24 silly fetchPackageMetaData if(window.browserDetails.browserType == window.BrowserType.IE && window.browserDetails.browserVersion <= 7 && document.documentMode === undefined)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData correctClass = "className";
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData return correctClass;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Initialize.
24 silly fetchPackageMetaData //=============================================================================================
24 silly fetchPackageMetaData this.init = function(cancelPage)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData if (typeof cancelPage == 'undefined')
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData cancelPage = false;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData var requestData = {
24 silly fetchPackageMetaData IID: "-1",
24 silly fetchPackageMetaData UserID: "",
24 silly fetchPackageMetaData IsThinPortal: false,
24 silly fetchPackageMetaData UserLang: "",
24 silly fetchPackageMetaData GetCancelPage: cancelPage
24 silly fetchPackageMetaData };
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData requestData.IID = UserCheck.DataObj.IID;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var cookie = getCookie('UserCheck_UserID');
24 silly fetchPackageMetaData requestData.UserID = cookie != null ? cookie : "";
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData requestData.IsThinPortal = window.isThinPortal === true ? true : false;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var selectedLanguage = getCookie('UserCheck_Selected_Language');
24 silly fetchPackageMetaData if(selectedLanguage == null)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData selectedLanguage = "";
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData requestData.UserLang = selectedLanguage;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var sAbsoluteURL = PORTAL_IS.TOOLS.getURL("data/GetUserCheckIncidentData");
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if (window.isThinPortal === true)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData //Create a custom timeout handler for the thin portal.
24 silly fetchPackageMetaData PORTAL_IS.AJAX_MGR.customTimeoutHandler = function()
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData window.location = "about:blank";
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData sendAsynchronousRequest(sAbsoluteURL,
24 silly fetchPackageMetaData flattenObject(requestData),
24 silly fetchPackageMetaData this.handleUserCheckIncidentData,
24 silly fetchPackageMetaData this,
24 silly fetchPackageMetaData [new Callback()]);
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData //Toggles the button's state from enabled to disabled and vice versa.
24 silly fetchPackageMetaData this.setButtonMode = function(buttonState, buttonID)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData var button = document.getElementById(buttonID);
24 silly fetchPackageMetaData if(button == null)
24 silly fetchPackageMetaData return;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var correctClass = window.oUserAction.getCorrectClass();
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if(buttonState)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData //Enable the button.
24 silly fetchPackageMetaData button.setAttribute(correctClass, "button");
24 silly fetchPackageMetaData button.onclick = function(){ javascript:oUserAction.submitOK(); };
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData button.style.cursor = "pointer";
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData //Disable the button.
24 silly fetchPackageMetaData button.setAttribute(correctClass, "button buttonDisabled");
24 silly fetchPackageMetaData button.onclick = null;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData button.style.cursor = "default";
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData //Changes the button CSS class (support for IE6-8). buttonCLS is for additional classes to be added to the button.
24 silly fetchPackageMetaData this.setButtonState = function(state, buttonID, buttonCLS)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData if (!buttonID)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData buttonID = 'UserCheck_OK_Button';
24 silly fetchPackageMetaData buttonCLS = '';
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var correctClass = window.oUserAction.getCorrectClass();
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var button = document.getElementById(buttonID);
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if(button.getAttribute(correctClass).indexOf("Disabled") == -1)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData //The button is not disabled.
24 silly fetchPackageMetaData button.setAttribute(correctClass, "button button" + state + " " + buttonCLS);
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData this.handleUserCheckIncidentData = function(xhrStatus, xhrResponse, callback)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData DEBUG.out("UserAction::handleUserCheckIncidentData");
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if (callback == undefined)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData callback = new Callback();
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if (xhrStatus != 200)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData DEBUG.out('Retreiving UserCheck Incident Data failed. ('+xhrStatus+')', DEBUG.ERROR);
24 silly fetchPackageMetaData callback.call();
24 silly fetchPackageMetaData return;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData this.incidentObject = JSON.parse(xhrResponse);
24 silly fetchPackageMetaData var Languages = this.incidentObject.Languages;
24 silly fetchPackageMetaData var UserCheckLogoID = this.incidentObject.UserCheckLogoID;
24 silly fetchPackageMetaData var RedirectToAddr = this.incidentObject.RedirectToAddr;
24 silly fetchPackageMetaData var AutoRedirect = this.incidentObject.AutoRedirect;
24 silly fetchPackageMetaData var ExternalSystemURL = this.incidentObject.ExternalSystemURL;
24 silly fetchPackageMetaData var Action = this.incidentObject.Action;
24 silly fetchPackageMetaData var Variables = this.incidentObject.Variables;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData this.incidentObject.HasBeenCancelled = false;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData setCookie('UserCheck_UserID', this.incidentObject.UserID, 31556926);
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if (Variables['product'] != 'Threat Extraction')
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData if(AutoRedirect == true && RedirectToAddr != "")
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData if (window.isThinPortal === undefined)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData //We have an address and auto redirect is true so redirect to that URL.
24 silly fetchPackageMetaData // if (RedirectToAddr.indexOf('http://') != 0)
24 silly fetchPackageMetaData if ((RedirectToAddr.indexOf('http://') != 0) &&(RedirectToAddr.indexOf('https://') != 0))
24 silly fetchPackageMetaData RedirectToAddr = "http://" + RedirectToAddr;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData window.location = RedirectToAddr;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else
24 silly fetchPackageMetaData window.location = "about:blank"; //No reason to redirect in the Thin Portal
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData if (Action == "SCRUB-SUCCESS")
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData // in scrub success page, if not mobile or thin, give more space for the list of original files names and info
24 silly fetchPackageMetaData if(window.browserDetails.isMobile() === false && window.isThinPortal === undefined)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData var content_table = document.getElementById("usercheck_content_table");
24 silly fetchPackageMetaData if (content_table != null)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData content_table.style.tableLayout="auto";
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var message_div = document.getElementById("usercheck_main_div");
24 silly fetchPackageMetaData if (message_div != null)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData message_div.style.minWidth="auto";
24 silly fetchPackageMetaData message_div.style.maxWidth="700px";
24 silly fetchPackageMetaData message_div.style.whiteSpace="nowrap";
24 silly fetchPackageMetaData message_div.style.wordWrap="normal";
24 silly fetchPackageMetaData message_div.style.overflow="auto";
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var requestData = {
24 silly fetchPackageMetaData IID: "-1"
24 silly fetchPackageMetaData };
24 silly fetchPackageMetaData requestData.IID = UserCheck.DataObj.IID;
24 silly fetchPackageMetaData var sAbsoluteURL = PORTAL_IS.TOOLS.getURL("data/GetScrubFiles");
24 silly fetchPackageMetaData sendAsynchronousRequest(sAbsoluteURL,
24 silly fetchPackageMetaData flattenObject(requestData),
24 silly fetchPackageMetaData this.handleScrubbingFiles,
24 silly fetchPackageMetaData this,
24 silly fetchPackageMetaData [new Callback()]);
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if(ExternalSystemURL != "")
24 silly fetchPackageMetaData //We have an external system address so redirect to that URL.
24 silly fetchPackageMetaData // window.location = ExternalSystemURL + (this.incidentObject.ForwardParams == true ? "?IncidentID=" + UserCheck.DataObj.IID + "&UserID=" + this.incidentObject.UserID : "");
24 silly fetchPackageMetaData if (this.incidentObject.ForwardParams == true)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData window.location = ExternalSystemURL + "?IncidentID=" + UserCheck.DataObj.IID + "&UserID=" + this.incidentObject.UserID;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData window.location = ExternalSystemURL;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData this.prepareLanguageSelection();
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if(window.self !== window.top)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData //We are inside a frame. Display small version of the portal and give link to a full version of the portal in new tab/window.
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var url = '<a href="' + window.location + "&frame=1" + '" target="_blank">';
24 silly fetchPackageMetaData if (Action == "SCRUB-SUCCESS")
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData Action = "INFORM";
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData url += draw_img_tag(getURL("img/" + Action.toLowerCase() + ".png")) + '&nbsp;&nbsp;';
24 silly fetchPackageMetaData url += Action == 'BLOCK' ? PORTAL_IS.L10N.L10N_Obj.getStr("UC.BLOCKED_IFRAME") : PORTAL_IS.L10N.L10N_Obj.getStr("UC.INFO_IFRAME");
24 silly fetchPackageMetaData url += '</a>';
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData document.body.innerHTML = url;
24 silly fetchPackageMetaData document.body.style.backgroundImage = 'none';
24 silly fetchPackageMetaData document.body.style.textAlign = 'center';
24 silly fetchPackageMetaData document.body.style.verticalAlign = 'text-bottom';
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData //Decide which footer to display according to the action type (for Block and Limit we display footer without CP logo).
24 silly fetchPackageMetaData if(window.isThinPortal === true)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData var thin_table = document.getElementById('usercheck_thin_table');
24 silly fetchPackageMetaData if(thin_table != null && Action != 'BLOCK' && Action != 'LIMIT')
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData var correctClass = window.oUserAction.getCorrectClass();
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData thin_table.setAttribute(correctClass, "usercheck_main_mobile_background_class with_logo");
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData var logo_footer = document.getElementById('footer_table_logo');
24 silly fetchPackageMetaData if(logo_footer != null && Action != 'BLOCK' && Action != 'LIMIT')
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData var correctClass = window.oUserAction.getCorrectClass();
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData logo_footer.setAttribute(correctClass, "usercheck_footer_table_class footer_logo");
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData g_userID = this.incidentObject.UserID;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if (Action == "SCRUB-SUCCESS")
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData Action = "INFORM";
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData //Draw incident image according to the incident type
24 silly fetchPackageMetaData if(document.getElementById('usercheck_img_div') !== null)
24 silly fetchPackageMetaData document.getElementById('usercheck_img_div').innerHTML = draw_img_tag(getURL("img/" + Action.toLowerCase() + ".png"));
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if(this.incidentObject.IsLogoConfigured)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData //The page has a logo defined in the GUI - load it.
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData //Desktop header.
24 silly fetchPackageMetaData var header_right_logo = document.getElementById('usercheck_header_right_logo');
24 silly fetchPackageMetaData if(header_right_logo != null)
24 silly fetchPackageMetaData if(window.browserDetails.browserType == window.BrowserType.IE && window.browserDetails.browserVersion <= 7)
24 silly fetchPackageMetaData header_right_logo.style.display = "block";
24 silly fetchPackageMetaData else
24 silly fetchPackageMetaData header_right_logo.style.display = "table-cell";
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var header_right_empty = document.getElementById('usercheck_header_right_empty');
24 silly fetchPackageMetaData if(header_right_empty != null)
24 silly fetchPackageMetaData header_right_empty.style.display = "none";
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData //Mobile header.
24 silly fetchPackageMetaData var mobile_header = document.getElementById('header_mobile_div');
24 silly fetchPackageMetaData if(mobile_header != null)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData mobile_header.style.display = "block";
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData //Company logo.
24 silly fetchPackageMetaData var company_logo = document.getElementById('usercheck_company_logo');
24 silly fetchPackageMetaData if(company_logo != null)
24 silly fetchPackageMetaData company_logo.src = getURL("images/interactions/" + UserCheckLogoID + ".png");
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else if(window.isThinPortal === true)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData //If there is no logo defined, display the default logo in the thin portal.
24 silly fetchPackageMetaData var company_logo = document.getElementById('usercheck_company_logo');
24 silly fetchPackageMetaData if(company_logo != null)
24 silly fetchPackageMetaData company_logo.src = getURL("img/cp_logo_mobile_thin.png");
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData //Start the timeout manager.
24 silly fetchPackageMetaData UserCheck.tools.oTimeoutManager.startTimeoutTimer(this.incidentObject.Expiration - 15, this.handleTimeout);
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if (UserCheck.DataObj.GetSingleIncidentReview !== undefined && UserCheck.DataObj.GetSingleIncidentReview == 1)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData window.singleIncident = new SingleIncident();
24 silly fetchPackageMetaData singleIncident.init();
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData callback.call();
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData this.submitOK = function()
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData //This function determines if it is OK to proceed with sending a response if all validation criteria are met.
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData //If we are in a Block action in thin portal, just redirect to about:blank.
24 silly fetchPackageMetaData if (window.isThinPortal === true && window.oUserAction.incidentObject.Action === "BLOCK")
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData window.location = "about:blank";
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if(document.getElementById('UserCheck_Textual_Input') != null)
24 silly fetchPackageMetaData //Verify we have the real textarea!
24 silly fetchPackageMetaData if(document.getElementById('UserCheck_Textual_Input').value !== undefined)
24 silly fetchPackageMetaData //Unfocus the text-area.
24 silly fetchPackageMetaData document.getElementById('UserCheck_Textual_Input').blur();
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if(!window.oUserAction.highlightInput())
24 silly fetchPackageMetaData //There was some user input missing - don't continue.
24 silly fetchPackageMetaData return;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var cookie = getCookie('UserCheck_UserID');
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var requestData = {};
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData requestData.IID = "-1";
24 silly fetchPackageMetaData requestData.UserOption = "OK";
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData requestData.UserID = cookie;
24 silly fetchPackageMetaData requestData.IsReasonExist = true;
24 silly fetchPackageMetaData if(document.getElementById('UserCheck_Textual_Input') != null)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData var reason = document.getElementById('UserCheck_Textual_Input').value;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData //If the reason box is not found, there is nothing to enforce.
24 silly fetchPackageMetaData if(reason === undefined)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData reason = "";
24 silly fetchPackageMetaData requestData.IsReasonExist = false;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else if(window.oUserAction.incidentObject.IsReasonEnforced === true && (reason.length == 0 || reason.length > 400))
24 silly fetchPackageMetaData return;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData requestData.Reason = reason;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData requestData.IsReasonExist = false;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData //Sometimes the cookie is not written correctly, so used global user.
24 silly fetchPackageMetaData if(requestData.UserID == null || requestData.UserID == "")
24 silly fetchPackageMetaData requestData.UserID = g_userID;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData requestData.IID = UserCheck.DataObj.IID;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var sAbsoluteURL = PORTAL_IS.TOOLS.getURL("data/GetUserCheckUserChoiceData");
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData sendAsynchronousRequest(sAbsoluteURL,
24 silly fetchPackageMetaData flattenObject(requestData),
24 silly fetchPackageMetaData this.handleUserCheckChoiceData,
24 silly fetchPackageMetaData this,
24 silly fetchPackageMetaData [new Callback()]);
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData this.submitCancel = function()
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData if(window.oUserAction.incidentObject.CancelURL !== undefined && window.oUserAction.incidentObject.CancelURL !== "")
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData window.location = window.oUserAction.incidentObject.CancelURL;
24 silly fetchPackageMetaData return;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData if (window.isThinPortal == true)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData window.location = "about:blank";
24 silly fetchPackageMetaData return;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData this.init(true);
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData this.handleUserCheckChoiceData = function(xhrStatus, xhrResponse, callback)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData try
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData window.external.OKButtonClickedResponseReceived('Done handling request');
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData catch(err)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData //do nothing, this is probably the fat client
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData DEBUG.out("UserAction::handleUserCheckChoiceData");
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if (callback == undefined)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData callback = new Callback();
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if (xhrStatus != 200)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData DEBUG.out('Retreiving UserCheck Incident Data failed. ('+xhrStatus+')', DEBUG.ERROR);
24 silly fetchPackageMetaData callback.call();
24 silly fetchPackageMetaData return;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var newViewJSONObj = JSON.parse(xhrResponse);
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var RedirectToAddr = newViewJSONObj.RedirectToAddr;
24 silly fetchPackageMetaData if (window.oUserAction.incidentObject.Variables['product'] != 'Threat Extraction')
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData if(RedirectToAddr != "")
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData var frame = "0";
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData frame = UserCheck.DataObj.frame;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if(typeof frame === "undefined" || frame == "0" || frame == "")
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData if (window.isThinPortal === undefined)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData //We have an address so redirect to that URL.
24 silly fetchPackageMetaData if ((RedirectToAddr.indexOf('http://') != 0) &&(RedirectToAddr.indexOf('https://') != 0))
24 silly fetchPackageMetaData RedirectToAddr = "http://" + RedirectToAddr;
24 silly fetchPackageMetaData window.location = RedirectToAddr;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else
24 silly fetchPackageMetaData window.location = "about:blank";
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData if (window.isThinPortal === undefined)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData //We have an address so redirect to that URL in the parent frame.
24 silly fetchPackageMetaData if ((RedirectToAddr.indexOf('http://') != 0) &&(RedirectToAddr.indexOf('https://') != 0))
24 silly fetchPackageMetaData RedirectToAddr = "http://" + RedirectToAddr;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData window.opener.location = RedirectToAddr;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData window.opener.location = "about:blank";
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData window.close();
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData var frame = "0";
24 silly fetchPackageMetaData frame = UserCheck.DataObj.frame;
24 silly fetchPackageMetaData if(typeof frame === "undefined" || frame == "0" || frame == "")
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData if (window.isThinPortal == true)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData window.location = "about:blank";
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData if (window.isThinPortal == true)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData window.opener.location = "about:blank";
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData window.close();
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData window.location.reload();
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData this.handleUserReportWrongCategoryData = function(xhrStatus, xhrResponse, callback)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData DEBUG.out("UserAction::handleUserLogData");
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData this.handleTimeout = function()
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData var requestData = {
24 silly fetchPackageMetaData IID: "-1"
24 silly fetchPackageMetaData };
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData requestData.IID = UserCheck.DataObj.IID;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var sAbsoluteURL = PORTAL_IS.TOOLS.getURL("ExtendTimeout");
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData sendAsynchronousRequest(sAbsoluteURL,
24 silly fetchPackageMetaData flattenObject(requestData),
24 silly fetchPackageMetaData window.oUserAction.handleTimeoutExtension,
24 silly fetchPackageMetaData this,
24 silly fetchPackageMetaData [new Callback()]);
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData this.handleTimeoutExtension = function(xhrStatus, xhrResponse, callback)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData DEBUG.out("UserAction::handleTimeoutExtension");
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if (callback == undefined)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData callback = new Callback();
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if (xhrStatus != 200)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData if (window.isThinPortal === undefined)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData DEBUG.out('Retreiving UserCheck Timeout Extension data failed. ('+xhrStatus+')', DEBUG.ERROR);
24 silly fetchPackageMetaData callback.call();
24 silly fetchPackageMetaData return;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData window.location = "about:blank";
24 silly fetchPackageMetaData return;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData var extensionObject = JSON.parse(xhrResponse);
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if(extensionObject.ReturnCode == "SUCCESS")
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData UserCheck.tools.oTimeoutManager.startTimeoutTimer(extensionObject.Expiration - 15, window.oUserAction.handleTimeout);
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData if(window.isThinPortal === undefined)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData var button = document.getElementById('UserCheck_OK_Button');
24 silly fetchPackageMetaData if(button !=null)
24 silly fetchPackageMetaData button.style.display = "none";
24 silly fetchPackageMetaData var select = document.getElementById('usercheck_language_selection');
24 silly fetchPackageMetaData if(select != null)
24 silly fetchPackageMetaData select.disabled = true;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData showPortalMessage(PORTAL_IS.L10N.L10N_Obj.getStr("TIMEOUT") + " <a href='" + window.oUserAction.incidentObject.RedirectToAddr + "'>" + PORTAL_IS.L10N.L10N_Obj.getStr("RETRY") + "</a>", null, PORTAL_IS.MESSAGE_TYPE.Display, true);
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData /* If we are in thin portal, redirect to about:blank
24 silly fetchPackageMetaData so that client can catch it and act accordingly. */
24 silly fetchPackageMetaData window.location = "about:blank";
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData //Prepare for language selection.
24 silly fetchPackageMetaData this.prepareLanguageSelection = function()
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData var Languages = this.incidentObject.Languages;
24 silly fetchPackageMetaData var prevSelectedLanguage = null;
24 silly fetchPackageMetaData var userSelected = false;
24 silly fetchPackageMetaData if (UserCheck.DataObj.Lang != "" && UserCheck.DataObj.Lang !== undefined)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData prevSelectedLanguage = UserCheck.DataObj.Lang;
24 silly fetchPackageMetaData userSelected = true;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else if (this.incidentObject.PreferredLang != "")
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData prevSelectedLanguage = this.incidentObject.PreferredLang;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData prevSelectedLanguage = getCookie('UserCheck_Selected_Language');
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData var count = 0;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData //If there is no cookie, get the browser locale.
24 silly fetchPackageMetaData if(prevSelectedLanguage == null)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData var langArr = {};
24 silly fetchPackageMetaData for(var Language in Languages)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData langArr[Languages[Language].LanguageCode] = true;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData prevSelectedLanguage = PORTAL_IS.L10N.L10N_Obj.selectLanguage(langArr);
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if(document.getElementById('usercheck_language_selection_div') != null)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData count = 0;
24 silly fetchPackageMetaData for(var Language in Languages)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData var select = document.getElementById('usercheck_language_selection');
24 silly fetchPackageMetaData select.options[select.options.length] = new Option(Languages[Language].Language, Language, false, Language === prevSelectedLanguage);
24 silly fetchPackageMetaData count++;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData //Display language selection only if NOT in thin portal.
24 silly fetchPackageMetaData if(count > 1 && window.isThinPortal === undefined)
24 silly fetchPackageMetaData document.getElementById('usercheck_language_selection_div').style.display = "block";
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData this.handleLanguageChange(true, userSelected);
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData //Handles language change.
24 silly fetchPackageMetaData this.handleLanguageChange = function(noReloadLang, userSelected)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData var select = document.getElementById('usercheck_language_selection');
24 silly fetchPackageMetaData var selectedLanguage = select.options[select.selectedIndex].value;
24 silly fetchPackageMetaData if(noReloadLang === true)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData //No need to load the language - if it is already loaded.
24 silly fetchPackageMetaData this.asyncLanguageChangeCallback(userSelected);
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData //Reload language strings.
24 silly fetchPackageMetaData PORTAL_IS.L10N.L10N_Obj.reloadLanguageTo(selectedLanguage, "en", this.asyncLanguageChangeCallback);
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData this.checkBoxExists = function(adminMessage)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData if(adminMessage.indexOf("UserCheck_Confirm_Checkbox") != -1)
24 silly fetchPackageMetaData return true;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData return false;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData this.textareaExists = function(adminMessage)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData if(adminMessage.indexOf("UserCheck_Textual_Input") != -1)
24 silly fetchPackageMetaData return true;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData return false;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData this.asyncLanguageChangeCallback = function(userSelected)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData if (userSelected === undefined)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData userSelected = true;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData var select = document.getElementById('usercheck_language_selection');
24 silly fetchPackageMetaData var check = document.getElementById('UserCheck_Confirm_Checkbox');
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var selectedLanguage = "Default";
24 silly fetchPackageMetaData if(select != null)
24 silly fetchPackageMetaData selectedLanguage = select.options[select.selectedIndex].value;
24 silly fetchPackageMetaData var checkBoxValue = check != null ? check.checked : false;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData //Save cookie for the selected language. Only if it is from a User Selection.
24 silly fetchPackageMetaData if (userSelected)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData setCookie('UserCheck_Selected_Language', selectedLanguage == "Default" ? "en" : selectedLanguage, 31556926, "/");
24 silly fetchPackageMetaData var cookieVal = getCookie('UserCheck_UserID');
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var handleUpdateUserDataResponse = function(xhrStatus, xhrResponse, callback){
24 silly fetchPackageMetaData var newURL = window.location.href;
24 silly fetchPackageMetaData //alert("newURL '"+newURL+"'");
24 silly fetchPackageMetaData var langLoc = newURL.indexOf("&Lang=");
24 silly fetchPackageMetaData //alert("langLoc '"+langLoc+"'");
24 silly fetchPackageMetaData if (langLoc != -1)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData newURL = newURL.substring(0, langLoc);
24 silly fetchPackageMetaData //alert("newURL '"+newURL+"'");
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData window.location = newURL;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData sendAsynchronousRequest(getURL("UpdateUserData"),
24 silly fetchPackageMetaData "Language="+encodeURIComponent(selectedLanguage) + "&IID="+encodeURIComponent(UserCheck.DataObj.IID)+"&UserID="+cookieVal,
24 silly fetchPackageMetaData handleUpdateUserDataResponse,
24 silly fetchPackageMetaData this,
24 silly fetchPackageMetaData [new Callback()]);
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData //Keep this value globally for other funcs.
24 silly fetchPackageMetaData window.oUserAction.incidentObject.SelectedLanguage = selectedLanguage;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var Languages = window.oUserAction.incidentObject.Languages;
24 silly fetchPackageMetaData var TitleText = Languages[selectedLanguage].TitleText;
24 silly fetchPackageMetaData var AdminMessage = Languages[selectedLanguage].AdminMessage;
24 silly fetchPackageMetaData var CancelMessage = Languages[selectedLanguage].CancelMessage;
24 silly fetchPackageMetaData var OKButtonMessage = window.oUserAction.incidentObject.OKButtonMessage[selectedLanguage];
24 silly fetchPackageMetaData var CancelButtonMessage = window.oUserAction.incidentObject.CancelButtonMessage[selectedLanguage];
24 silly fetchPackageMetaData var SendButtonMessage = window.oUserAction.incidentObject.SendButtonMessage[selectedLanguage];
24 silly fetchPackageMetaData var MiddleButtonMessage = window.oUserAction.incidentObject.MiddleButtonMessage[selectedLanguage];
24 silly fetchPackageMetaData var HTTPLearningEnabled = window.oUserAction.incidentObject.HTTPLearningEnabled;
24 silly fetchPackageMetaData var PageTitle = Languages[selectedLanguage].PageTitle;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData document.getElementById('usercheck_title_div').innerHTML = TitleText;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if(window.oUserAction.incidentObject.HasBeenCancelled === undefined || window.oUserAction.incidentObject.HasBeenCancelled === false)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData if (window.oUserAction.incidentObject.IncidentStatus == 0 || window.oUserAction.incidentObject.IncidentStatus == 2 || window.oUserAction.incidentObject.IncidentStatus == 8)//ok or cancel or ok_scrubbing
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData document.getElementById('usercheck_main_div').innerHTML = AdminMessage;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else if (window.oUserAction.incidentObject.IncidentStatus == 3)// sent
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData // if http learning is enabled on action succeded show the HTTP_LEARNING message
24 silly fetchPackageMetaData if (HTTPLearningEnabled == true && window.oUserAction.incidentObject.RedirectToAddr != "")
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData var usercheck_main_div = document.getElementById('usercheck_main_div')
24 silly fetchPackageMetaData if (usercheck_main_div != null)
24 silly fetchPackageMetaData usercheck_main_div.innerHTML = "<p>" +PORTAL_IS.L10N.L10N_Obj.getStr("HTTP_LEARNING")+"</p>";
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else // an SMTP message
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData document.getElementById('usercheck_main_div').innerHTML = AdminMessage;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else if (window.oUserAction.incidentObject.IncidentStatus == 4)//discarded
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData document.getElementById('usercheck_main_div').innerHTML = AdminMessage;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else if (window.oUserAction.incidentObject.IncidentStatus == 5)//already sent
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData if (HTTPLearningEnabled == true && window.oUserAction.incidentObject.RedirectToAddr != "")
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData //if approved http and then refreshed the page
24 silly fetchPackageMetaData var usercheck_main_div = document.getElementById('usercheck_main_div')
24 silly fetchPackageMetaData if (usercheck_main_div != null)
24 silly fetchPackageMetaData usercheck_main_div.innerHTML = "<p>" +PORTAL_IS.L10N.L10N_Obj.getStr("HTTP_LEARNING")+"</p>";
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData document.getElementById('usercheck_main_div').innerHTML = AdminMessage;
24 silly fetchPackageMetaData var return_to_site_div = document.getElementById('usercheck_return_to_site_div')
24 silly fetchPackageMetaData if (return_to_site_div != null)
24 silly fetchPackageMetaData return_to_site_div.innerHTML = "<p style='color: #FF5000;font-weight: bold;'>" +PORTAL_IS.L10N.L10N_Obj.getStr("EMAIL_ALREADY_SENT") +"</p>";
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else if (window.oUserAction.incidentObject.IncidentStatus == 6)//already discarded
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData document.getElementById('usercheck_main_div').innerHTML = AdminMessage;
24 silly fetchPackageMetaData var return_to_site_div = document.getElementById('usercheck_return_to_site_div')
24 silly fetchPackageMetaData if (return_to_site_div != null)
24 silly fetchPackageMetaData return_to_site_div.innerHTML = "<p style='color: #FF5000;font-weight: bold;'>" +PORTAL_IS.L10N.L10N_Obj.getStr("EMAIL_ALREADY_DISCARDED") +"</p>";
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData document.getElementById('usercheck_main_div').innerHTML = "<p>" + PORTAL_IS.L10N.L10N_Obj.getStr("UNKOWN_INCIDENT_STATUS") + "</p>" + window.oUserAction.incidentObject.IncidentStatus;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var btnDiv = document.getElementById('usercheck_ok_div');
24 silly fetchPackageMetaData if (btnDiv != null)
24 silly fetchPackageMetaData btnDiv.innerHTML = OKButtonMessage;
24 silly fetchPackageMetaData btnDiv = document.getElementById('usercheck_cancel_div');
24 silly fetchPackageMetaData if (btnDiv != null)
24 silly fetchPackageMetaData btnDiv.innerHTML = CancelButtonMessage;
24 silly fetchPackageMetaData btnDiv = document.getElementById('usercheck_send_div');
24 silly fetchPackageMetaData // show the send button on SMTP (which is actually the send button) OR show it on inform action (which is actually OK button)
24 silly fetchPackageMetaData if (btnDiv != null && (window.oUserAction.incidentObject.RedirectToAddr == "" || window.oUserAction.incidentObject.Action == "INFORM") )
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData // alert("setting usercheck_send_div");
24 silly fetchPackageMetaData btnDiv.innerHTML = SendButtonMessage;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData btnDiv = document.getElementById('usercheck_middle_div');
24 silly fetchPackageMetaData if (btnDiv != null)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData // alert("setting discard button div");
24 silly fetchPackageMetaData btnDiv.innerHTML = MiddleButtonMessage;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData var goBackDiv = document.getElementById('usercheck_return_to_site_div');
24 silly fetchPackageMetaData if (goBackDiv)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData // show return to site only when its http violation AND if the action is: sent or discarded or already sent or already discarded or cancelled.
24 silly fetchPackageMetaData if (window.oUserAction.incidentObject.RedirectToAddr != "" && (window.oUserAction.incidentObject.IncidentStatus == 3 || window.oUserAction.incidentObject.IncidentStatus == 4 || window.oUserAction.incidentObject.IncidentStatus == 5 || window.oUserAction.incidentObject.IncidentStatus == 6 || window.oUserAction.incidentObject.IncidentStatus == 2))
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData goBackDiv.innerHTML = '<a href="' + window.oUserAction.incidentObject.RedirectToAddr + '">' + PORTAL_IS.L10N.L10N_Obj.getStr("RETURN_TO_SITE") + '</a>';
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else
24 silly fetchPackageMetaData document.getElementById('usercheck_main_div').innerHTML = CancelMessage;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var page_title = document.getElementById('usercheck_page_title');
24 silly fetchPackageMetaData if(page_title != null)
24 silly fetchPackageMetaData page_title.innerHTML = PageTitle;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var span = document.getElementById('UserCheck_OK_Button_span');
24 silly fetchPackageMetaData if(span != null)
24 silly fetchPackageMetaData span.innerHTML = PORTAL_IS.L10N.L10N_Obj.getStr('BUTTON.OK');
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData span = document.getElementById('UserCheck_Cancel_Button_span');
24 silly fetchPackageMetaData if(span != null)
24 silly fetchPackageMetaData span.innerHTML = PORTAL_IS.L10N.L10N_Obj.getStr('BUTTON.CANCEL');
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData span = document.getElementById('UserCheck_Send_Button_span');
24 silly fetchPackageMetaData if(span != null)
24 silly fetchPackageMetaData span.innerHTML = PORTAL_IS.L10N.L10N_Obj.getStr('BUTTON.SEND');
24 silly fetchPackageMetaData span = document.getElementById('UserCheck_Middle_Button_span');
24 silly fetchPackageMetaData if(span != null)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData if (window.oUserAction.incidentObject.RedirectToAddr == "")
24 silly fetchPackageMetaData span.innerHTML = PORTAL_IS.L10N.L10N_Obj.getStr('BUTTON.DISCARD');
24 silly fetchPackageMetaData else
24 silly fetchPackageMetaData span.innerHTML = PORTAL_IS.L10N.L10N_Obj.getStr("BUTTON.APPROVE");
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var reportLink = document.getElementById('UserCheck_Wrong_Category');
24 silly fetchPackageMetaData if(reportLink != null)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData var correctClass = window.oUserAction.getCorrectClass();
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData reportLink.setAttribute(correctClass, "usercheck_url_class");
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData reportLink.onclick = function(e) { window.oUserAction.sendReport(); }
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData //Clear the error message when switching language.
24 silly fetchPackageMetaData var errorElement = document.getElementById('usercheck_error_div');
24 silly fetchPackageMetaData if(errorElement != null)
24 silly fetchPackageMetaData errorElement.innerHTML = "&nbsp;";
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData //Keep TextArea default text to disallow it as input.
24 silly fetchPackageMetaData var textarea_element = null;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if(window.oUserAction.textareaExists(AdminMessage))
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData textarea_element = document.getElementById('UserCheck_Textual_Input');
24 silly fetchPackageMetaData //If the textarea is an incorrect element or length is correct, check passes.
24 silly fetchPackageMetaData if(textarea_element.value === undefined)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData //This element is not really our text area so we don't need it.
24 silly fetchPackageMetaData textarea_element = null;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if(textarea_element != null)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData window.oUserAction.textAreaText = textarea_element.value;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var correctClass = window.oUserAction.getCorrectClass();
24 silly fetchPackageMetaData textarea_element.setAttribute(correctClass, "usercheck_message_class usercheck_textual_input_class usercheck_textual_input_class_required");
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData textarea_element.onfocus = function() { window.oUserAction.clearRequiredInput(); };
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData //disable the approve button only on PortalMaindlp. on thin client approve button should always be enabled
24 silly fetchPackageMetaData if (window.oUserAction.incidentObject.RedirectToAddr != "" && window.isThinPortal != true)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData window.oUserActionCommon.DlpHttpLearning(AdminMessage,HTTPLearningEnabled);
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData // hiding the cancel button on infom on dlp only
24 silly fetchPackageMetaData window.oUserActionCommon.DlpHideCancelBtn(window.oUserAction.incidentObject.Action);
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData //Sends report for wrong category.
24 silly fetchPackageMetaData this.sendReport = function()
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData var Variables = window.oUserAction.incidentObject.Variables;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var resource = Variables['resource'] === undefined ? "" : Variables['resource'];
24 silly fetchPackageMetaData var hmac = Variables['resource_hmac'] === undefined ? "" : Variables['resource_hmac'];
24 silly fetchPackageMetaData var version = Variables['version'];
24 silly fetchPackageMetaData var product = Variables['product'];
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData //Get the application name. If this variable has been modified (added application icon for example), take the original.
24 silly fetchPackageMetaData var appname = Variables['application_name_orig'];
24 silly fetchPackageMetaData var malwareID = Variables['application_id'];
24 silly fetchPackageMetaData if(appname === undefined)
24 silly fetchPackageMetaData appname = Variables['application_name'];
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var base64UrlEncode = function(input) { return $.base64Encode(input).replace(/\+/g, '-').replace(/\//g, '_').replace(/\=/g, '') };
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData //Encode to base64 URL form spec.
24 silly fetchPackageMetaData appname = base64UrlEncode(appname);
24 silly fetchPackageMetaData resource = base64UrlEncode(resource);
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData //URL of the external URL
24 silly fetchPackageMetaData var url = window.location.protocol + "//cws.checkpoint.com/MISCAT/miscat/1.0?resource=" + resource + "&hmac=" + hmac + "&appname=" + appname + "&version=" + version + "&product=" + product + "&malwareID=" + malwareID;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData //Display a portal messge indicating the action was successful. On mobile devices we use the built-in message display.
24 silly fetchPackageMetaData if(window.browserDetails.isMobile())
24 silly fetchPackageMetaData alert(PORTAL_IS.L10N.L10N_Obj.getStr("REPORT_SUCCESS"));
24 silly fetchPackageMetaData else
24 silly fetchPackageMetaData showPortalMessage('<table><tr><td>' + draw_img_tag_span(getURL("images/confirmation.png")) + '&nbsp;&nbsp;</td><td>' + PORTAL_IS.L10N.L10N_Obj.getStr("REPORT_SUCCESS") + '</td></tr></table>', null, PORTAL_IS.MESSAGE_TYPE.Confirmation, true, false);
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var img = new Image();
24 silly fetchPackageMetaData img.src = url;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var reportLink = document.getElementById('UserCheck_Wrong_Category');
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var correctClass = window.oUserAction.getCorrectClass();
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData //Disable the link.
24 silly fetchPackageMetaData reportLink.setAttribute(correctClass, "usercheck_url_class usercheck_disabled_url_class");
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData //send log on wrong category
24 silly fetchPackageMetaData var cookie = getCookie('UserCheck_UserID');
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var requestData = {};
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData requestData.IID = "-1";
24 silly fetchPackageMetaData requestData.UserOption = "LOG-WRONG-CATEGORY";
24 silly fetchPackageMetaData requestData.UserID = cookie;
24 silly fetchPackageMetaData requestData.IsReasonExist = false;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData //Sometimes the cookie is not written correctly, so used global user.
24 silly fetchPackageMetaData if(requestData.UserID == null || requestData.UserID == "")
24 silly fetchPackageMetaData requestData.UserID = g_userID;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData requestData.IID = UserCheck.DataObj.IID;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var sAbsoluteURL = PORTAL_IS.TOOLS.getURL("data/GetUserCheckUserChoiceData");
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData sendAsynchronousRequest(sAbsoluteURL,
24 silly fetchPackageMetaData flattenObject(requestData),
24 silly fetchPackageMetaData this.handleUserReportWrongCategoryData,
24 silly fetchPackageMetaData this,
24 silly fetchPackageMetaData [new Callback()]);
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData //Nothing should happen on click from now on.
24 silly fetchPackageMetaData reportLink.onclick = function() { };
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData this.handleReportTimeout = function()
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData var elem = document.getElementById('testID');
24 silly fetchPackageMetaData document.getElementsByTagName('head')[0].removeChild(elem);
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData //Verifies the input of the user, including checkbox and textarea.
24 silly fetchPackageMetaData this.highlightInput = function()
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData var checkbox_element = null;
24 silly fetchPackageMetaData var textarea_element = null;
24 silly fetchPackageMetaData var checkbox_ready = false;
24 silly fetchPackageMetaData var textarea_ready = false;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var AdminMessage = window.oUserAction.incidentObject.Languages[window.oUserAction.incidentObject.SelectedLanguage].AdminMessage;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData //If the checkbox exists (and it is a correct element), its value will determine the button status.
24 silly fetchPackageMetaData if(window.oUserAction.incidentObject.IsCheckBoxEnforced == true && window.oUserAction.checkBoxExists(AdminMessage) == true && document.getElementById('UserCheck_Confirm_Checkbox').checked !== undefined)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData checkbox_element = document.getElementById('UserCheck_Confirm_Checkbox');
24 silly fetchPackageMetaData checkbox_ready = checkbox_element.checked;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else
24 silly fetchPackageMetaData checkbox_ready = true;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData //If the reason textbox exists and is enforced, its value will determine the button status.
24 silly fetchPackageMetaData if(window.oUserAction.incidentObject.IsReasonEnforced === true && window.oUserAction.textareaExists(AdminMessage))
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData textarea_element = document.getElementById('UserCheck_Textual_Input');
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData //If the textarea is an incorrect element or length is correct, check passes.
24 silly fetchPackageMetaData if(textarea_element.value === undefined)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData textarea_ready = true;
24 silly fetchPackageMetaData //This element is not really our text area so we don't need it.
24 silly fetchPackageMetaData textarea_element = null;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData if (textarea_element.value.length > 0 && textarea_element.value.length <= 400 && textarea_element.value != PORTAL_IS.L10N.L10N_Obj.getStr("ENTER_TEXT") && textarea_element.value != window.oUserAction.textAreaText)
24 silly fetchPackageMetaData textarea_ready = true;
24 silly fetchPackageMetaData else
24 silly fetchPackageMetaData textarea_ready = false;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else
24 silly fetchPackageMetaData textarea_ready = true;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var all_ready = checkbox_ready === true && textarea_ready === true;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var correctClass = window.oUserAction.getCorrectClass();
24 silly fetchPackageMetaData var elememt_to_scroll = null;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if(checkbox_element != null)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData checkbox_element.parentNode.parentNode.parentNode.parentNode.setAttribute(correctClass, (checkbox_ready ? "usercheck_red_no_highlight" : "usercheck_red_highlight" ));
24 silly fetchPackageMetaData elememt_to_scroll = checkbox_ready ? elememt_to_scroll : checkbox_element.parentNode.parentNode.parentNode.parentNode;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if(textarea_element != null)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData textarea_element.setAttribute(correctClass, "usercheck_message_class usercheck_textual_input_class " + (textarea_ready ? "usercheck_red_no_highlight" : "usercheck_red_highlight usercheck_textual_input_class_required" ));
24 silly fetchPackageMetaData elememt_to_scroll = textarea_ready ? elememt_to_scroll : textarea_element;
24 silly fetchPackageMetaData if(!textarea_ready)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData if(window.oUserAction.textAreaText === "" || textarea_element.value !== window.oUserAction.textAreaText)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData if(window.oUserAction.textAreaText != "")
24 silly fetchPackageMetaData textarea_element.value = window.oUserAction.textAreaText;
24 silly fetchPackageMetaData else
24 silly fetchPackageMetaData textarea_element.value = PORTAL_IS.L10N.L10N_Obj.getStr("ENTER_TEXT");
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData textarea_element.onfocus = function() { window.oUserAction.clearRequiredInput(); };
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if(!textarea_ready && !checkbox_ready && checkbox_element!=null && textarea_element!=null)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData if(checkbox_element.parentNode.parentNode.parentNode.parentNode.offsetTop > textarea_element.offsetTop)
24 silly fetchPackageMetaData elememt_to_scroll = checkbox_element;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if(elememt_to_scroll!=null){
24 silly fetchPackageMetaData elememt_to_scroll.scrollIntoView(false);
24 silly fetchPackageMetaData var scrollableDiv = document.getElementById("usercheck_scrollable_div");
24 silly fetchPackageMetaData if (scrollableDiv !== null)
24 silly fetchPackageMetaData scrollableDiv.scrollLeft = 0;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var errorElement = document.getElementById('usercheck_error_div');
24 silly fetchPackageMetaData if(errorElement != null)
24 silly fetchPackageMetaData errorElement.innerHTML = all_ready ? "" : "<br/><span style='color: #FF0000;'>* " + PORTAL_IS.L10N.L10N_Obj.getStr("REQUIRED_FIELDS") + "</span>";
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData return all_ready;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData this.clearRequiredInput = function()
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData textarea_element = document.getElementById('UserCheck_Textual_Input');
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData textarea_element.value = "";
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var correctClass = window.oUserAction.getCorrectClass();
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if(textarea_element.getAttribute(correctClass).indexOf("usercheck_red_highlight") !== -1)
24 silly fetchPackageMetaData textarea_element.setAttribute(correctClass, "usercheck_message_class usercheck_textual_input_class usercheck_red_highlight");
24 silly fetchPackageMetaData else
24 silly fetchPackageMetaData textarea_element.setAttribute(correctClass, "usercheck_message_class usercheck_textual_input_class");
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData textarea_element.onfocus = function() { };
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData this.sendMail = function()
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData DEBUG.out("UserAction::sendMail");
24 silly fetchPackageMetaData this.last_action = 'sent';
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if(!window.oUserAction.highlightInput())
24 silly fetchPackageMetaData //There was some user input missing - don't continue.
24 silly fetchPackageMetaData return;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var reason = "";
24 silly fetchPackageMetaData if(document.getElementById('UserCheck_Textual_Input') != null)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData reason = document.getElementById('UserCheck_Textual_Input').value;
24 silly fetchPackageMetaData //If the reason box is not found, there is nothing to enforce.
24 silly fetchPackageMetaData if(reason === undefined)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData reason = "";
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var sendMailCallback = new Callback();
24 silly fetchPackageMetaData sendMailCallback.methodReference = this.handleConfirmationData;
24 silly fetchPackageMetaData sendMailCallback.thisArgument = this;
24 silly fetchPackageMetaData sendMailCallback.args.push(new Callback());
24 silly fetchPackageMetaData PORTAL_IS.AJAX_MGR.sendAsyncReq( getURL("EmailSend"),
24 silly fetchPackageMetaData "mailId="+encodeURIComponent(UserCheck.DataObj.IID)+
24 silly fetchPackageMetaData "&justification="+encodeURIComponent(reason)+"&action=DLP-CHOICE-ACTION-SEND",
24 silly fetchPackageMetaData sendMailCallback,
24 silly fetchPackageMetaData null,
24 silly fetchPackageMetaData null,
24 silly fetchPackageMetaData "Sending email failed.");
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData this.discardMail = function()
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData DEBUG.out("UserAction::deleteMail");
24 silly fetchPackageMetaData this.last_action = 'delete';
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var sendMailCallback = new Callback();
24 silly fetchPackageMetaData sendMailCallback.methodReference = this.handleConfirmationData;
24 silly fetchPackageMetaData sendMailCallback.thisArgument = this;
24 silly fetchPackageMetaData sendMailCallback.args.push(new Callback());
24 silly fetchPackageMetaData PORTAL_IS.AJAX_MGR.sendAsyncReq( getURL("EmailSend"),
24 silly fetchPackageMetaData "mailId="+encodeURIComponent(UserCheck.DataObj.IID)+
24 silly fetchPackageMetaData "&justification="+encodeURIComponent("")+"&action=DLP-CHOICE-ACTION-DISCARD",
24 silly fetchPackageMetaData sendMailCallback,
24 silly fetchPackageMetaData null,
24 silly fetchPackageMetaData null,
24 silly fetchPackageMetaData "Sending email failed.");
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData this.handleConfirmationData = function(xhrStatus, xhrResponse, callback)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData DEBUG.out("UserAction::handleConfirmationData ");
24 silly fetchPackageMetaData if (callback == undefined)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData callback = new Callback();
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData if (xhrStatus != 200)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData // TODO: Handle error.
24 silly fetchPackageMetaData DEBUG.out('Retreiving Single Incident Review Data failed. ('+xhrStatus+')', DEBUG.ERROR);
24 silly fetchPackageMetaData callback.call();
24 silly fetchPackageMetaData return;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData var newViewJSONObj = JSON.parse(xhrResponse);
24 silly fetchPackageMetaData var message = newViewJSONObj.message;
24 silly fetchPackageMetaData var lastChanged = newViewJSONObj.lastChanged;
24 silly fetchPackageMetaData var succeeded = newViewJSONObj.succeeded;
24 silly fetchPackageMetaData if (lastChanged != -1 && lastChanged != 0)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData //message += " ";
24 silly fetchPackageMetaData //message += convertToGmt(lastChanged);
24 silly fetchPackageMetaData //this.emailData.date = convertToGmt(lastChanged);
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData //@@NA add test if this is from Thin Portal and only then redirect to about:blank
24 silly fetchPackageMetaData // window.location = "about:blank";
24 silly fetchPackageMetaData if (succeeded)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData var cookie = getCookie('UserCheck_UserID');
24 silly fetchPackageMetaData var requestData = {};
24 silly fetchPackageMetaData requestData.IID = "-1";
24 silly fetchPackageMetaData requestData.UserID = cookie;
24 silly fetchPackageMetaData requestData.IsReasonExist = true;
24 silly fetchPackageMetaData requestData.Reason = "";
24 silly fetchPackageMetaData requestData.UserOption = "SEND";
24 silly fetchPackageMetaData if (newViewJSONObj.action == "DLP-CHOICE-ACTION-DISCARD")
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData requestData.UserOption = "DISCARD";
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if (newViewJSONObj.action === undefined || newViewJSONObj.action != "DLP-CHOICE-ACTION-SEND")
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData requestData.IsReasonExist = false;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData if(document.getElementById('UserCheck_Textual_Input') != null)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData var reason = document.getElementById('UserCheck_Textual_Input').value;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData //If the reason box is not found, there is nothing to enforce.
24 silly fetchPackageMetaData if(reason === undefined)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData reason = "";
24 silly fetchPackageMetaData requestData.IsReasonExist = false;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else if(window.oUserAction.incidentObject.IsReasonEnforced === true && (reason.length == 0 || reason.length > 400))
24 silly fetchPackageMetaData return;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData requestData.Reason = reason;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData requestData.IsReasonExist = false;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData //Sometimes the cookie is not written correctly, so used global user.
24 silly fetchPackageMetaData if(requestData.UserID == null || requestData.UserID == "")
24 silly fetchPackageMetaData requestData.UserID = g_userID;
24 silly fetchPackageMetaData requestData.IID = UserCheck.DataObj.IID;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var sAbsoluteURL = PORTAL_IS.TOOLS.getURL("data/GetUserCheckUserChoiceData");
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData sendAsynchronousRequest(sAbsoluteURL,
24 silly fetchPackageMetaData flattenObject(requestData),
24 silly fetchPackageMetaData this.handleUserCheckChoiceData,
24 silly fetchPackageMetaData this,
24 silly fetchPackageMetaData [new Callback()]);
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData this.goToBlank = function()
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData window.location = "about:blank";
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData this.ApproveHttp = function()
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData this.sendMail();
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData this.createScrubbingLinks = function(attachments, isExtended)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData var scrub_files_out = "<ul style=\"list-style-type: none;padding: 0;\">";
24 silly fetchPackageMetaData for (var i = 0;i<attachments.length;i++)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData if (attachments[i].fileStatus == "FILE-STATUS-APPROVED-BY-TE" || attachments[i].fileStatus == "FILE-STATUS-AVAILABLE" || attachments[i].fileStatus == "FILE-STATUS-AVAILABLE-SUSPICIOUS")
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData var image = "images/confirmation.png";
24 silly fetchPackageMetaData var comment = "";
24 silly fetchPackageMetaData var toolTip = "Click to download";
24 silly fetchPackageMetaData var removedParts = attachments[i].removedParts;
24 silly fetchPackageMetaData if (isExtended == true)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData if(removedParts != "")
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData removedParts = removedParts.replace(/\n/g,", ");
24 silly fetchPackageMetaData comment = " contains " + removedParts;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData comment = PORTAL_IS.L10N.L10N_Obj.getStr(attachments[i].scrubResult);
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData scrub_files_out += "<li title=\"" + toolTip + "\"><img src=\"" + image + "\" width=\"20\" height=\"20\"/>&nbsp;&nbsp;" + "<a href=\"ScrubGetFile?IID="+UserCheck.DataObj.IID+"&fileID="+attachments[i].fileId+"\" TARGET=\"_blank\"><span style=\"font-weight:bold\">" + attachments[i].fileName + "</span></a> <span style=\"color:Red;font-size:80%\">" + comment + "</span></li>"
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData var description = "";
24 silly fetchPackageMetaData var img = "";
24 silly fetchPackageMetaData var toolTip = "";
24 silly fetchPackageMetaData if (attachments[i].fileStatus == "FILE-STATUS-WAITING-FOR-TE")
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData g_refreshFiles = true;
24 silly fetchPackageMetaData description = "scanning...";
24 silly fetchPackageMetaData img = "img/loader.gif";
24 silly fetchPackageMetaData toolTip = "Please wait while file is being scanned";
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else if (attachments[i].fileStatus == "FILE-STATUS-BLOCKED-BY-TE")
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData description = "blocked - file is malicious";
24 silly fetchPackageMetaData img = "img/block.png";
24 silly fetchPackageMetaData toolTip = "File is malicious - blocked for download";
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else if (attachments[i].fileStatus == "FILE-STATUS-BLOCKED-BY-POLICY")
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData description = "blocked according to company policy";
24 silly fetchPackageMetaData img = "img/block.png";
24 silly fetchPackageMetaData toolTip = "File is blocked for download according to company policy";
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData scrub_files_out += "<li title=\"" + toolTip + "\"><img src=\"" + img + "\" width=\"20\" height=\"20\"/>&nbsp;&nbsp;" + attachments[i].fileName + " <span style=\"color:LightSteelBlue\">(" + description + ")</span></li>"
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData scrub_files_out += "</ul><div id=\"refresh_timer_div\"></div>";
24 silly fetchPackageMetaData return scrub_files_out;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData this.handleScrubbingFiles = function(xhrStatus, xhrResponse, callback)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData if (callback == undefined)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData callback = new Callback();
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if (xhrStatus != 200)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData DEBUG.out('Retreiving UserCheck Incident Data failed. ('+xhrStatus+')', DEBUG.ERROR);
24 silly fetchPackageMetaData callback.call();
24 silly fetchPackageMetaData return;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData this.scrubbingResponse = JSON.parse(xhrResponse);
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var attachments = [];
24 silly fetchPackageMetaData if( Object.prototype.toString.call( this.scrubbingResponse.data.attachments ) != '[object Array]' ) {
24 silly fetchPackageMetaData attachments[0] = this.scrubbingResponse.data.attachments;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData attachments = this.scrubbingResponse.data.attachments;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData g_refreshFiles = false;
24 silly fetchPackageMetaData var scrub_links_simple = document.getElementById('links_simple');
24 silly fetchPackageMetaData if (scrub_links_simple != null)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData if (scrub_links_simple.hasChildNodes())
24 silly fetchPackageMetaData scrub_links_simple.removeChild(scrub_links_simple.childNodes[0]);
24 silly fetchPackageMetaData var tmp = document.createElement("div");
24 silly fetchPackageMetaData tmp.innerHTML = window.oUserAction.createScrubbingLinks(attachments, false);
24 silly fetchPackageMetaData scrub_links_simple.appendChild(tmp);
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var scrub_links_extended = document.getElementById('links_extended');
24 silly fetchPackageMetaData if (scrub_links_extended != null)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData if (scrub_links_extended.hasChildNodes())
24 silly fetchPackageMetaData scrub_links_extended.removeChild(scrub_links_extended.childNodes[0]);
24 silly fetchPackageMetaData var tmp = document.createElement("div");
24 silly fetchPackageMetaData tmp.innerHTML = window.oUserAction.createScrubbingLinks(attachments, true);
24 silly fetchPackageMetaData scrub_links_extended.appendChild(tmp);
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var scrub_wait_massage = document.getElementById('scrub_wait_message');
24 silly fetchPackageMetaData if (scrub_wait_massage != null)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData scrub_wait_massage.style.display = 'none';
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if (g_refreshFiles)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData UserCheck.tools.oTimeoutManager.startTimeoutTimer(30, window.oUserAction.refreshScrubbingFiles);
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData callback.call();
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData this.refreshScrubbingFiles = function()
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData var requestData = {
24 silly fetchPackageMetaData IID: "-1"
24 silly fetchPackageMetaData };
24 silly fetchPackageMetaData requestData.IID = UserCheck.DataObj.IID;
24 silly fetchPackageMetaData var sAbsoluteURL = PORTAL_IS.TOOLS.getURL("data/GetScrubFiles");
24 silly fetchPackageMetaData sendAsynchronousRequest(sAbsoluteURL,
24 silly fetchPackageMetaData flattenObject(requestData),
24 silly fetchPackageMetaData window.oUserAction.handleScrubbingFiles,
24 silly fetchPackageMetaData this,
24 silly fetchPackageMetaData [new Callback()]);
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData this.showOrHideRemovedPartsfromFiles = function(FileIndex)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData var infoimg_element = document.getElementById('infoimg_' + FileIndex);
24 silly fetchPackageMetaData var removed_parts_element = document.getElementById('removed_parts_' + FileIndex);
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if ( infoimg_element != null && removed_parts_element != null )
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData if( removed_parts_element.style.display === "none" )
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData infoimg_element.style.display = 'none';
24 silly fetchPackageMetaData removed_parts_element.style.display = 'inline';
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData infoimg_element.style.display = "inline";
24 silly fetchPackageMetaData removed_parts_element.style.display = 'none';
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData } //END: window.UserAction = function()
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData window.oUserAction = new UserAction();
24 silly fetchPackageMetaData oUserAction.init();
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData </script>
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData </html>
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData at Object.parse (native)
24 silly fetchPackageMetaData at CachingRegistryClient.<anonymous> (C:\Program Files\nodejs\node_modules\npm\node_modules\npm-registry-client\lib\request.js:237:23)
24 silly fetchPackageMetaData at Request._callback (C:\Program Files\nodejs\node_modules\npm\node_modules\npm-registry-client\lib\request.js:210:14)
24 silly fetchPackageMetaData at Request.self.callback (C:\Program Files\nodejs\node_modules\npm\node_modules\request\request.js:187:22)
24 silly fetchPackageMetaData at emitTwo (events.js:106:13)
24 silly fetchPackageMetaData at Request.emit (events.js:191:7)
24 silly fetchPackageMetaData at Request.<anonymous> (C:\Program Files\nodejs\node_modules\npm\node_modules\request\request.js:1048:10)
24 silly fetchPackageMetaData at emitOne (events.js:96:13)
24 silly fetchPackageMetaData at Request.emit (events.js:188:7)
24 silly fetchPackageMetaData at IncomingMessage.<anonymous> (C:\Program Files\nodejs\node_modules\npm\node_modules\request\request.js:969:12)
24 silly fetchPackageMetaData error for highcharts SyntaxError: Unexpected token < in JSON at position 0
24 silly fetchPackageMetaData <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData <html>
24 silly fetchPackageMetaData <head>
24 silly fetchPackageMetaData <meta name="robots" content="noindex,nofollow" />
24 silly fetchPackageMetaData <meta content="yes" name="apple-mobile-web-app-capable" />
24 silly fetchPackageMetaData <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData <link rel="icon" type="image/vnd.microsoft.icon" href="img/favicon.ico"/> <link rel="shortcut icon" type="image/vnd.microsoft.icon" href="img/favicon.ico"/>
24 silly fetchPackageMetaData <link id="dynamicCSS" rel="stylesheet" type="text/css" href="/UserCheck/css/Blob_dynamic_css" />
24 silly fetchPackageMetaData <link id="staticCSS" rel="stylesheet" type="text/css" href="/UserCheck/css/Blob_static.css" />
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData <script type="text/javascript">
24 silly fetchPackageMetaData //Create a dynamic element to allow sending of the document mode of IE.
24 silly fetchPackageMetaData //This way we can notify PHP that it can display modern content instead of classic, despite the browser's reporting of being IE7.
24 silly fetchPackageMetaData var headID = document.getElementsByTagName("head")[0];
24 silly fetchPackageMetaData var cssNode = document.createElement('link');
24 silly fetchPackageMetaData cssNode.type = 'text/css';
24 silly fetchPackageMetaData cssNode.rel = 'stylesheet';
24 silly fetchPackageMetaData cssNode.href = "/UserCheck/css/UserCheckCSS" + (document.documentMode !== undefined ? "?documentMode=" + document.documentMode : "");
24 silly fetchPackageMetaData headID.appendChild(cssNode);
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData /*
24 silly fetchPackageMetaData ========================================================================================================================
24 silly fetchPackageMetaData PORTAL IS - ESSENTIALS INCLUSION - START
24 silly fetchPackageMetaData ________________________________________________________________________________________________________________________
24 silly fetchPackageMetaData */
24 silly fetchPackageMetaData // Set global PORTAL_IS namespace.
24 silly fetchPackageMetaData window.PORTAL_IS = {};
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Set namespace.
24 silly fetchPackageMetaData PORTAL_IS.CONF = {};
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData PORTAL_IS.CONF.AJAX_REQ_TIMEOUT = 15000;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // These properties describes the external references of the portal.
24 silly fetchPackageMetaData PORTAL_IS.CONF.MULTI_PORTALS = {};
24 silly fetchPackageMetaData PORTAL_IS.CONF.MULTI_PORTALS.EXTERNAL_PATH = "";
24 silly fetchPackageMetaData PORTAL_IS.CONF.MULTI_PORTALS.EXTERNAL_PORT = 443;
24 silly fetchPackageMetaData PORTAL_IS.CONF.MULTI_PORTALS.EXTERNAL_HOST = "192.168.0.0";
24 silly fetchPackageMetaData PORTAL_IS.CONF.MULTI_PORTALS.EXTERNAL_SCHEME = "https";
24 silly fetchPackageMetaData PORTAL_IS.CONF.MULTI_PORTALS.XSRF_TOKEN = "";
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // The current web application name.
24 silly fetchPackageMetaData PORTAL_IS.CONF.WEBAPP_NAME = "UserCheck";
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Debug configurations
24 silly fetchPackageMetaData PORTAL_IS.CONF.MAX_STACK_SIZE = 1000;
24 silly fetchPackageMetaData PORTAL_IS.CONF.QUIET_MODE = "on".toLowerCase() == "on";
24 silly fetchPackageMetaData PORTAL_IS.CONF.DEBUG_LEVEL = 0;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Set namespace.
24 silly fetchPackageMetaData window.PORTAL_IS.L10N = {}
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Localization object.
24 silly fetchPackageMetaData //=============================================================================================
24 silly fetchPackageMetaData function __L10N()
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData this.strings = new Array();
24 silly fetchPackageMetaData this.browserLangs = new Array();
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData this.init = function()
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData var obj = {"UC_TITLE":"Check Point UserCheck","UC_TITLE_MOBILE_DLP":"Check Point UserCheck Mobile DLP","BUTTON.OK":"OK","BUTTON.CANCEL":"Cancel","BUTTON.SEND":"Send","BUTTON.DISCARD":"Discard","BUTTON.APPROVE":"Approve","WRONG_ID":"This notification page has expired. You can safely close the page or ","TIMEOUT":"This notification page has expired. You can safely close the page or ","RETRY":"reload the original page.","REPORT_SUCCESS":"Report was sent successfully.","REPORT_ERROR":"An error occured while sending the report.","REQUIRED_FIELDS":"Required fields","ENTER_TEXT":"Enter text","RETURN_TO_SITE":"Return to site","UC.BLOCKED_IFRAME":"Learn more...","UC.INFO_IFRAME":"Click to resolve...","PLEASE_WAIT":"Please wait . . .","NO_SCRIPT":"This portal requires browser which support JavaScript.<br>Please make sure that you are using an updated browser and that JavaScript is enabled.","MSGBOX_TITLE_CONFIRMATION":"Confirmation","MSGBOX_TITLE_JUSTIFICATION":"Justification","MSGBOX_TITLE_APPROVER":"Approver","MSGBOX_TITLE_WARNING":"Warning","MSGBOX_TITLE_ATTENTION":"Attention","MSGBOX_TITLE_ERROR":"Error","MSGBOX_TITLE_REPORT_ERROR":"Report an error","MSGBOX_TITLE_EXTEND_EXPIRATION":"Extend expiration date","DEFAULT_GENERIC_CLIENT_ERROR":"An unexpected error has occurred.\nYou may still be able to continue working normally.\nPlease retry accessing the web page in a short while.\n\n","DEFAULT_GENERIC_TIMEOUT_CLIENT_ERROR":"You may not access this page, or this page has expired.\nPlease sign in.","LOG_REFERENCE_ID":"Log reference id: ","ERROR.LINK.SEND_ERROR_REPORT":"Send error report","ERROR.LINK.IM_HAVING_PROBLEMS":"I am having problems with this Portal.","CHECKPOINT_COPY_RIGHTS":"&copy;2011 Check Point Software Technologies Ltd.","EMAIL_SENT":"The email has been sent","EMAIL_DISCARDED":"The email has been discarded","EMAIL_ALREADY_SENT":"The email has already been sent","EMAIL_ALREADY_DISCARDED":"The email has already been discarded","UNKOWN_INCIDENT_STATUS":"The incident status is unkown","REVIEW_TEXT":"Review issue in portal","MAIL.ITEM.ATTACHMENTS":"Attachments","HTTP_LEARNING":"To complete the operation, <b>please return to site and resend the information<\/b>, thanks.","HTTP_LEARNING_ERROR_MSG":"Sending the message cannot be approved,<\/br> please contact your system administrator.","HTTP_LEARNING_ERROR_TOOLTIP":"Sending the message cannot be approved, please contact your system administrator.","CP_SCRUB_WAIT_MESSAGE":"Please wait while loading files...","CP_SCRUB_RESULT_SUCCESS":"","CP_SCRUB_RESULT_FAILURE":"File structure may be corrupted","CP_SCRUB_RESULT_TIMEOUT":"","CP_SCRUB_RESULT_UNSUPPORTED_FILE":"File format is not supported","CP_SCRUB_RESULT_NOT_SCRUBBED":"","CP_SCRUB_RESULT_INTERNAL_ERROR":"","CP_SCRUB_RESULT_NO_VALID_CONTRACT":"","CP_SCRUB_RESULT_SKIPPED_BY_TE_CONFIDENCE":"","CP_SCRUB_RESULT_OUT_OF_MEMORY":"","CP_SCRUB_RESULT_DOCSEC_FILE":"File encrypted using Checkpoint's Document Security","CP_SCRUB_RESULT_ENCRYPTED_FILE":"contains encrypted data","CP_SCRUB_RESULT_SKIPPED_BY_SCRIPT":"","CP_SCRUB_RESULT_DISK_LIMIT_REACHED":""};
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData for(val in obj)
24 silly fetchPackageMetaData this.strings[val] = obj[val];
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData obj = ["en"];
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData for(val in obj)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData this.browserLangs[val] = obj[val].split(';')[0];
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData this.getStr = function(stringId)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData return this.strings[stringId];
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData this.selectLanguage = function(languageArray)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData for(lang in this.browserLangs)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData if(languageArray[this.browserLangs[lang]] === true)
24 silly fetchPackageMetaData return this.browserLangs[lang];
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if(languageArray[this.browserLangs[lang].substring(0, 2)] === true)
24 silly fetchPackageMetaData return this.browserLangs[lang].substring(0, 2);
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData //If nothing succeeded, return the default.
24 silly fetchPackageMetaData return "en";
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData this.reloadLanguageTo = function(lang, fallbackLang, callback)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData var requestData = {};
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData requestData.lang = lang;
24 silly fetchPackageMetaData requestData.fallbackLang = fallbackLang;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var sAbsoluteURL = PORTAL_IS.TOOLS.getURL("data/GetTranslationData");
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData sendAsynchronousRequest(sAbsoluteURL,
24 silly fetchPackageMetaData flattenObject(requestData),
24 silly fetchPackageMetaData this.asyncReloadLangHandler,
24 silly fetchPackageMetaData this,
24 silly fetchPackageMetaData [callback]);
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData this.asyncReloadLangHandler = function(xhrStatus, xhrResponse, callback)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData if (xhrStatus != 200)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData DEBUG.out('Retreiving translation data failed. ('+xhrStatus+')', DEBUG.ERROR);
24 silly fetchPackageMetaData return;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var obj = JSON.parse(xhrResponse);
24 silly fetchPackageMetaData this.strings = null; //Ensure removing of old values.
24 silly fetchPackageMetaData this.strings = new Array();
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData for(val in obj)
24 silly fetchPackageMetaData this.strings[val] = obj[val];
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData callback();
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData //=============================================================================================
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData //Localization object.
24 silly fetchPackageMetaData L10N_Obj = new __L10N();
24 silly fetchPackageMetaData L10N_Obj.init();
24 silly fetchPackageMetaData PORTAL_IS.L10N.L10N_Obj = L10N_Obj;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData /*
24 silly fetchPackageMetaData ________________________________________________________________________________________________________________________
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData PORTAL IS - ESSENTIALS INCLUSION - END
24 silly fetchPackageMetaData ========================================================================================================================
24 silly fetchPackageMetaData */
24 silly fetchPackageMetaData var noJSCrypto = "true";
24 silly fetchPackageMetaData </script>
24 silly fetchPackageMetaData <script type="text/javascript" src="js/Blob.js"></script>
24 silly fetchPackageMetaData <script type="text/javascript">
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Create namespace
24 silly fetchPackageMetaData window.UserCheck = {};
24 silly fetchPackageMetaData window.UserCheck.tools = {};
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // =======================================================================================
24 silly fetchPackageMetaData function parseSender(value)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData return value.address;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData // =======================================================================================
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // =======================================================================================
24 silly fetchPackageMetaData // Render recipient list from and array.
24 silly fetchPackageMetaData // String[] recipientsArr - Array of recipients.
24 silly fetchPackageMetaData // [int ellipsisLimit] - A string beyond this length will be cut and added ellipsis. Optional, default is 0 - no ellipsis.
24 silly fetchPackageMetaData // [bool useLinebreakes] - Should a line break be added after each recipient. Optional, default is true.
24 silly fetchPackageMetaData function recipientsArr2StrInTable(recipientsArr, ellipsisLimit, useLinebreakes)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData if (ellipsisLimit == undefined)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData ellipsisLimit = 0;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if (useLinebreakes == undefined)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData useEllipsis = true;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var recipientsList = "";
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData for (var i=0; i<recipientsArr.length; i++)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData recipientsList += HTMLEncode(recipientsArr[i].address);
24 silly fetchPackageMetaData if (i < recipientsArr.length-1)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData recipientsList += ", ";
24 silly fetchPackageMetaData if (useLinebreakes)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData recipientsList += "<br>";
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if (ellipsisLimit > 0)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData //recipientsList = Ext.util.Format.ellipsis(recipientsList, ellipsisLimit);
24 silly fetchPackageMetaData recipientsList = recipientsList;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData return recipientsList;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData // =======================================================================================
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // =======================================================================================
24 silly fetchPackageMetaData // Render recipient list from and array.
24 silly fetchPackageMetaData // Sender sender - The sender data.
24 silly fetchPackageMetaData // [int ellipsisLimit] - A string beyond this length will be cut and added ellipsis. Optional, default is 0 - no ellipsis.
24 silly fetchPackageMetaData // [bool useLinebreakes] - Should a line break be added after each recipient. Optional, default is true.
24 silly fetchPackageMetaData function getSenderName(sender, ellipsisLimit)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData var output = "";
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if (ellipsisLimit == undefined)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData ellipsisLimit = 0;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if (sender.name.empty())
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData output = sender.address;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData output = sender.name;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // if (ellipsisLimit > 0)
24 silly fetchPackageMetaData // {
24 silly fetchPackageMetaData // output = Ext.util.Format.ellipsis(output, ellipsisLimit);
24 silly fetchPackageMetaData // }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData return output;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData // =======================================================================================
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // =======================================================================================
24 silly fetchPackageMetaData // Render recipient list from and array.
24 silly fetchPackageMetaData // String sender - The subject string.
24 silly fetchPackageMetaData // [int ellipsisLimit] - A string beyond this length will be cut and added ellipsis. Optional, default is 0 - no ellipsis.
24 silly fetchPackageMetaData // [bool useLinebreakes] - Should a line break be added after each recipient. Optional, default is true.
24 silly fetchPackageMetaData function getSubject(subject, ellipsisLimit)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData var output = subject;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if (ellipsisLimit == undefined)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData ellipsisLimit = 0;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // if (ellipsisLimit > 0)
24 silly fetchPackageMetaData // {
24 silly fetchPackageMetaData // output = Ext.util.Format.ellipsis(output, ellipsisLimit);
24 silly fetchPackageMetaData // }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData return output;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData // =======================================================================================
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // =======================================================================================
24 silly fetchPackageMetaData // tranform recipients array to string
24 silly fetchPackageMetaData function recipientsArr2Str(recipientsArr,type)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData var recipientsList = "";
24 silly fetchPackageMetaData var address = "";
24 silly fetchPackageMetaData var commaNeeded = false;
24 silly fetchPackageMetaData for (var i=0; i<recipientsArr.length; i++)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData if (type == recipientsArr[i].recipientType)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData if (!commaNeeded)
24 silly fetchPackageMetaData commaNeeded = true;
24 silly fetchPackageMetaData else
24 silly fetchPackageMetaData recipientsList += ", ";
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData address = HTMLEncode(recipientsArr[i].address);
24 silly fetchPackageMetaData if (recipientsArr[i].isExternal)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData address = '<span ' + GetDomainColor(recipientsArr[i].address)+' >' + address + '</span>'
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData recipientsList += address;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData return recipientsList;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // =======================================================================================
24 silly fetchPackageMetaData function arr2Str(arr)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData var str = "";
24 silly fetchPackageMetaData var commaNeeded = false;
24 silly fetchPackageMetaData for (var i=0; i<arr.length; i++)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData if (!commaNeeded)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData commaNeeded = true;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData str += ", ";
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData str += arr[i];
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData return str;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData function GetDomainColor(str)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData // var highlightColors = new Array("FFFF00","00FF00","00FFFF","FF00FF","FF0000","FFFF99","99FF99","CCFFFF","FFCCFF", "FF9999")
24 silly fetchPackageMetaData var highlightColors = new Array("FFFF00","FF00FF","FF0000","FFBB00","FF9999");
24 silly fetchPackageMetaData domainName = GetDomainName(str);
24 silly fetchPackageMetaData if (domainName==null) return null;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData hash=0;
24 silly fetchPackageMetaData for (i=0; i<domainName.length; i++)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData hash += domainName.charCodeAt(i);
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData hash = hash % (highlightColors.length);
24 silly fetchPackageMetaData return 'style="background-color: #' + highlightColors[hash] + '; text-decoration: underline;"';
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData /*
24 silly fetchPackageMetaData // =======================================================================================
24 silly fetchPackageMetaData UserCheck.tools.clearContainer = function(containerId)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData DEBUG.out("Clear container: "+containerId);
24 silly fetchPackageMetaData var container = Ext.getCmp(containerId);
24 silly fetchPackageMetaData if ((container) && (container.items))
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData container.items.each(
24 silly fetchPackageMetaData function(item)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData container.remove(item, true);
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData );
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData // =======================================================================================
24 silly fetchPackageMetaData */
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Override poral_is error handler.
24 silly fetchPackageMetaData //=============================================================================================
24 silly fetchPackageMetaData window.genericTimeoutHandler = function(portalException)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData DEBUG.out("UserCheck::genericTimeoutHandler.");
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if ((portalException == undefined) || (portalException == null))
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData portalException = new PortalException();
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Assign action to the Ok button.
24 silly fetchPackageMetaData // The event is added in order to get the exception, if it is set, that is set as the error message OK button attribute. see showPortalErrorMessage
24 silly fetchPackageMetaData postErrorHandler = function(event)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData // Check if redirected due to timeout.
24 silly fetchPackageMetaData if (getCookie("isRedirectedDueTimeout") == "1")
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData // Delete the cookie to allow future errors.
24 silly fetchPackageMetaData setCookie("isRedirectedDueTimeout", "0", 0);
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // TODO: Redirect to error page.
24 silly fetchPackageMetaData return;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Set cookie in order to prevent error loops.
24 silly fetchPackageMetaData setCookie("isRedirectedDueTimeout", "1", 5*60);
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData genericPostErrorHandler(event);
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Reload the page.
24 silly fetchPackageMetaData document.location.href=document.location.href;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // TODO: Get message from resource bundle.
24 silly fetchPackageMetaData //var errMsg = "Your session has expired or timed out.\nYou will be redirected to the login page.\n\n";
24 silly fetchPackageMetaData showPortalErrorMessage(portalException, postErrorHandler, true);
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData //=============================================================================================
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData //=============================================================================================
24 silly fetchPackageMetaData window.genericErrorHandler = function(portalException, callback)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData DEBUG.out("UserCheck::genericErrorHandler.");
24 silly fetchPackageMetaData if ((portalException == undefined) || (portalException == null))
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData portalException = new PortalException();
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if (isNothingness(callback))
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData callback = new Callback();
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Assign action to the Ok button.
24 silly fetchPackageMetaData // The event is added in order to get the exception, if it is set, that is set as the error message OK button attribute. see showPortalErrorMessage
24 silly fetchPackageMetaData postErrorHandler = function(event)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData genericPostErrorHandler(event);
24 silly fetchPackageMetaData callback.call();
24 silly fetchPackageMetaData // No reload of the page.
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData showPortalErrorMessage(portalException, postErrorHandler, true);
24 silly fetchPackageMetaData return true; // This is required for the execption to stop from being passed to the browser.
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData //=============================================================================================
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData //=============================================================================================
24 silly fetchPackageMetaData window.genericPostErrorHandler = function(event)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData DEBUG.out("UserCheck::genericPostErrorHandler.");
24 silly fetchPackageMetaData // Just hide the error.
24 silly fetchPackageMetaData hidePortalErrorMessage();
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData //=============================================================================================
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData //=============================================================================================
24 silly fetchPackageMetaData UserCheck.tools.sendErrorReport = function(userDesc, callback)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData DEBUG.out("UserCheck.tools.sendErrorReport in.");
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var sAbsoluteURL = getURL("data/submitErrorReport");
24 silly fetchPackageMetaData var report = encodeURIComponent(DEBUG.compileErrorReport());
24 silly fetchPackageMetaData var userDesc = encodeURIComponent(userDesc);
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var sendErrorReportCallback = new Callback();
24 silly fetchPackageMetaData sendErrorReportCallback.methodReference = UserCheck.tools.handleErrorReportResponse;
24 silly fetchPackageMetaData sendErrorReportCallback.args.push(callback);
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Send report with no error handlers.
24 silly fetchPackageMetaData PORTAL_IS.AJAX_MGR.sendAsyncReq(sAbsoluteURL, "report="+report+"&userDesc="+userDesc, sendErrorReportCallback, null, null, "Sending of error report failed.");
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Set error flag.
24 silly fetchPackageMetaData PORTAL_IS.TOOLS.errorMsgShown = false;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData //=============================================================================================
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData //=============================================================================================
24 silly fetchPackageMetaData UserCheck.tools.handleErrorReportResponse = function(xhrStatus, xhrResponse, callback)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData DEBUG.out("UserCheck.tools.handleErrorReportResponse in.");
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Set error flag.
24 silly fetchPackageMetaData PORTAL_IS.TOOLS.errorMsgShown = false;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if (isNothingness(callback))
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData callback = new Callback();
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if (xhrStatus != 200)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData // TODO: Handle error.
24 silly fetchPackageMetaData DEBUG.out('Submitting error report failed. ('+xhrStatus+')', DEBUG.ERROR);
24 silly fetchPackageMetaData callback.call();
24 silly fetchPackageMetaData showPortalMessage("Sending of error report failed.");
24 silly fetchPackageMetaData return;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData callback.call();
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData showPortalMessage("Error report was sent successfully.\nThank you for your support.", null, UserCheck.MESSAGE_TYPE.Confirmation);
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData //=============================================================================================
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData //=============================================================================================
24 silly fetchPackageMetaData UserCheck.tools.showErrorReport = function(callback)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData DEBUG.out("UserCheck.tools.showErrorReport in.");
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Create new callback with send report and store previous callback in it.
24 silly fetchPackageMetaData submitCallback = new Callback();
24 silly fetchPackageMetaData submitCallback.methodReference = DEBUG.sendErrorReport;
24 silly fetchPackageMetaData submitCallback.args = [callback];
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Create new callback for cancel.
24 silly fetchPackageMetaData cancelCallback = new Callback();
24 silly fetchPackageMetaData cancelCallback.methodReference = function()
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData // Clear error flag.
24 silly fetchPackageMetaData PORTAL_IS.TOOLS.errorMsgShown = false;
24 silly fetchPackageMetaData callback.call();
24 silly fetchPackageMetaData };
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Hide any opened boxes.
24 silly fetchPackageMetaData PORTAL_IS.TOOLS.hideGeneralContainer();
24 silly fetchPackageMetaData PORTAL_IS.TOOLS.hideDialog();
24 silly fetchPackageMetaData hidePortalMessage();
24 silly fetchPackageMetaData hidePortalErrorMessage();
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData PORTAL_IS.TOOLS.showDialog( "Please describe the encountered problem in the text box below.",
24 silly fetchPackageMetaData "NOTICE: The report might include personal information from your mail items.\nThe report will not include your credentials.",
24 silly fetchPackageMetaData "I was trying to (e.g. review an email):\n\nWork flow which led to this error (e.g. access via email link):\n\nI am unable to:",
24 silly fetchPackageMetaData "Report an error",
24 silly fetchPackageMetaData submitCallback, cancelCallback, null, null, null, null, true);
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Set error flag.
24 silly fetchPackageMetaData PORTAL_IS.TOOLS.errorMsgShown = true;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData //=============================================================================================
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData //=============================================================================================
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData //=============================================================================================
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData DEBUG.showErrorReport = UserCheck.tools.showErrorReport;
24 silly fetchPackageMetaData DEBUG.sendErrorReport = UserCheck.tools.sendErrorReport;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData UserCheck.tools.oTimeoutManager =
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData timerID: -1,
24 silly fetchPackageMetaData startTimeoutTimer: function(duration, callback)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData var milisecs = duration * 1000;
24 silly fetchPackageMetaData if (milisecs > 2147483646)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData milisecs = 2147483646;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData DEBUG.out("UserCheck.tools.TimeoutManager: Starting timer for " + duration + " seconds.");
24 silly fetchPackageMetaData window.TimeoutManagerCallback = callback;
24 silly fetchPackageMetaData this.timerID = setTimeout("this.TimeoutManagerCallback();", milisecs);
24 silly fetchPackageMetaData },
24 silly fetchPackageMetaData stopTimeoutTimer: function()
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData clearTimeout(timerID);
24 silly fetchPackageMetaData timerID = -1;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData };
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData UserCheck.DataObj = {};
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // TODO: This should be defined as an "interface" class and other view managers should implement it.
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // UC's view manager.
24 silly fetchPackageMetaData window.UCViewManager = function()
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData this.lastRenderedCustomContentContainers = new Array();
24 silly fetchPackageMetaData this.defaultContainer = 'portal_main_view';
24 silly fetchPackageMetaData this.ignoreHashChange = false;
24 silly fetchPackageMetaData this.wait = null;
24 silly fetchPackageMetaData this.requestParams = null;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Hash to view mapping, enables us to set display another value than the actual view name.
24 silly fetchPackageMetaData //==================================================================================================================
24 silly fetchPackageMetaData this.hashViewMap = new Array();
24 silly fetchPackageMetaData // Hash name View name
24 silly fetchPackageMetaData //__________________________________________________________________________________________________________________
24 silly fetchPackageMetaData this.hashViewMap["UserAction"] = "UserAction";
24 silly fetchPackageMetaData this.hashViewMap["MainWithMenuView"] = "MainWithMenuView";
24 silly fetchPackageMetaData this.hashViewMap["Menu"] = "Menu";
24 silly fetchPackageMetaData this.hashViewMap["Logout"] = "Logout";
24 silly fetchPackageMetaData this.hashViewMap["MainView"] = "MainView";
24 silly fetchPackageMetaData this.hashViewMap["Error"] = "Error";
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Get View name from Hash name.
24 silly fetchPackageMetaData this.hash2View = function(hash)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData var view = this.hashViewMap[hash];
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if (isNothingness(view))
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData view = "UserAction";
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData return view;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Get Hash name from View name.
24 silly fetchPackageMetaData this.view2Hash = function(view)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData var hash = "UserAction";
24 silly fetchPackageMetaData for (key in this.hashViewMap)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData if (this.hashViewMap[key] == view)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData var hash = key;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData return hash;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData //==================================================================================================================
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Initialize view manager.
24 silly fetchPackageMetaData //=============================================================================================
24 silly fetchPackageMetaData this.init = function()
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData DEBUG.out("UCViewManager::init");
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Bind history change handler.
24 silly fetchPackageMetaData $(window).bind('hashchange', viewManager.handleHistoryChange);
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Check address bar's hash and set desired view if exists.
24 silly fetchPackageMetaData var desiredView = this.parseHash().view;
24 silly fetchPackageMetaData if (isNothingness(desiredView))
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData desiredView = "";
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData DEBUG.out("UCViewManager::init, desired view: [" + desiredView + "]");
24 silly fetchPackageMetaData this.gotoNextView(desiredView);
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData //=============================================================================================
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Handle history changes (back/reload).
24 silly fetchPackageMetaData // Overriding default handling.
24 silly fetchPackageMetaData //=============================================================================================
24 silly fetchPackageMetaData this.handleHistoryChange = function(e, ui)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData // In some cases the hash is changed and no view load is required, checking if so.
24 silly fetchPackageMetaData if (!viewManager.ignoreHashChange && ui != undefined)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData // Parse view from hash.
24 silly fetchPackageMetaData var desiredView = viewManager.parseHash().view;
24 silly fetchPackageMetaData DEBUG.out("UCViewManager::handleHistoryChange, desired view:" + desiredView);
24 silly fetchPackageMetaData viewManager.gotoNextView(desiredView);
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData DEBUG.out("UCViewManager::handleHistoryChange, hash changed ignored.");
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Reset the ignore flag.
24 silly fetchPackageMetaData viewManager.ignoreHashChange = false;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData //=============================================================================================
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Queries the server for next desired view and than call for rendering it.
24 silly fetchPackageMetaData // Will call upon callback when done rendering the view.
24 silly fetchPackageMetaData //=============================================================================================
24 silly fetchPackageMetaData this.gotoNextView = function(requestedView, callback)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData DEBUG.out("UCViewManager::gotoNextView");
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if (isNothingness(callback))
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData callback = new Callback();
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Check what is the next view.
24 silly fetchPackageMetaData var sAbsoluteURL = PORTAL_IS.TOOLS.getURL("GetNextView");
24 silly fetchPackageMetaData var parameters = (isNothingness(requestedView)) ? ("") : ("requestedView=" + encodeURIComponent(requestedView));
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var gotoNextViewCallback = new Callback();
24 silly fetchPackageMetaData gotoNextViewCallback.methodReference = this.handleGotoNextViewRequest;
24 silly fetchPackageMetaData gotoNextViewCallback.thisArgument = this;
24 silly fetchPackageMetaData gotoNextViewCallback.args = [callback];
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData PORTAL_IS.AJAX_MGR.sendAsyncReq(sAbsoluteURL, parameters, gotoNextViewCallback);
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData //=============================================================================================
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Handle next view query.
24 silly fetchPackageMetaData //=============================================================================================
24 silly fetchPackageMetaData this.handleGotoNextViewRequest = function(xhrStatus, xhrResponse, callback)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData DEBUG.out("UCViewManager::handleGotoNextViewRequest");
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if (isNothingness(callback))
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData callback = new Callback();
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if (xhrStatus != 200)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData DEBUG.out('Retreiving next view failed. ('+xhrStatus+')', DEBUG.ERROR);
24 silly fetchPackageMetaData callback.call();
24 silly fetchPackageMetaData return;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var nextViewJSONObj = JSON.parse(xhrResponse);
24 silly fetchPackageMetaData var nextView = nextViewJSONObj.view;
24 silly fetchPackageMetaData DEBUG.out("UCViewManager::handleGotoNextViewRequest, next view:" + nextView);
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Extract the data (request params) from hash and relay it onto next hash.
24 silly fetchPackageMetaData // As hash changing handler will be passed back to this method we set the Ignore flag to TRUE
24 silly fetchPackageMetaData // and call for the gotoView method.
24 silly fetchPackageMetaData viewManager.changeHash(nextView, viewManager.parseHash().data, true);
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData viewManager.gotoView(nextView, callback);
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData //=============================================================================================
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Get view contents (CSS, JS and HTML).
24 silly fetchPackageMetaData // Will call upon callback when done rendering the view.
24 silly fetchPackageMetaData //=============================================================================================
24 silly fetchPackageMetaData this.gotoView = function(view, callback)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData DEBUG.out("UCViewManager::gotoView view: ["+view+"]");
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if (callback == undefined)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData callback = new Callback();
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var hash = this.parseHash().view;
24 silly fetchPackageMetaData var parameters = (hash == "") ? ("view="+encodeURIComponent(hash)) : ( "requestedView=" + encodeURIComponent(view) + "&view="+encodeURIComponent(hash) );
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData sendAsynchronousRequest(PORTAL_IS.TOOLS.getURL("viewManager/GetViewData"),
24 silly fetchPackageMetaData parameters,
24 silly fetchPackageMetaData this.handleNewView,
24 silly fetchPackageMetaData this,
24 silly fetchPackageMetaData [callback]);
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData //=============================================================================================
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Handle new view rendering.
24 silly fetchPackageMetaData //=============================================================================================
24 silly fetchPackageMetaData this.handleNewView = function(xhrStatus, xhrResponse, callback)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData if (callback == undefined)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData callback = new Callback();
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if (xhrStatus != 200)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData // TODO: Handle error.
24 silly fetchPackageMetaData DEBUG.out('Retreiving view failed. ('+xhrStatus+')', DEBUG.ERROR);
24 silly fetchPackageMetaData callback.call();
24 silly fetchPackageMetaData return;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var newViewJSONObj = JSON.parse(xhrResponse);
24 silly fetchPackageMetaData var newView = newViewJSONObj.view;
24 silly fetchPackageMetaData DEBUG.out("UCViewManager::handleNewView, Parsed from JSON - view:" + newView);
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var useDefaultContainerId = true;
24 silly fetchPackageMetaData var requiredContainerId = "";
24 silly fetchPackageMetaData var requiredView = "";
24 silly fetchPackageMetaData var requireSecureConnection = false;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData switch (newView)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData default: // View will be rendered into main page view.
24 silly fetchPackageMetaData useDefaultContainerId = true;
24 silly fetchPackageMetaData requiredContainerId = this.defaultContainer;
24 silly fetchPackageMetaData break;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Check if in https, redirect if not.
24 silly fetchPackageMetaData if ((requireSecureConnection) && (location.protocol.toLowerCase() == 'http:'))
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData newLocation = location.href.replace(/http:/i, "https:");
24 silly fetchPackageMetaData location.href = newLocation;
24 silly fetchPackageMetaData return;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var containerId = this.defaultContainer;
24 silly fetchPackageMetaData if (!useDefaultContainerId)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData containerId = requiredContainerId;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData //var container = Ext.getCmp(containerId);
24 silly fetchPackageMetaData var container = document.getElementById(containerId);
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if (container != undefined)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData DEBUG.out('Render new view ('+newViewJSONObj.view+') into [' + (useDefaultContainerId ? "DefaultContainer" : requiredContainerId) + "].");
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Render CSS. - Not needed, all CSS loads from one blob file.
24 silly fetchPackageMetaData //evaluateCSS(newViewJSONObj.css, "");
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Clear existing content.
24 silly fetchPackageMetaData container.innerHTML = "";
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // If the html content is not empty, render it into a new pane.
24 silly fetchPackageMetaData container.innerHTML = newViewJSONObj.html;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Render JavaScript Content.
24 silly fetchPackageMetaData evaluateJavaScript(newViewJSONObj.javascript);
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else if (requiredContainerId == this.defaultContainer)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData DEBUG.out('Default view is missing and will be rendered...');
24 silly fetchPackageMetaData this.renderDefaultView();
24 silly fetchPackageMetaData this.handleNewView(xhrStatus, xhrResponse, callback);
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else // The container is not present and needs to be rendered first.
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData DEBUG.out('Required view ('+requiredContainerId+') is missing and needs to be rendered first.');
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Set the previous view results in a callback, it will be called when finished rendering of the login sequence page.
24 silly fetchPackageMetaData var requiredViewCallback = new Callback();
24 silly fetchPackageMetaData requiredViewCallback.methodReference = this.handleNewView;
24 silly fetchPackageMetaData requiredViewCallback.thisArgument = this;
24 silly fetchPackageMetaData requiredViewCallback.args = [200, xhrResponse]; // Set fake status and response.
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Request specific view.
24 silly fetchPackageMetaData this.gotoView(requiredView, requiredViewCallback);
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // TODO: detect loops.
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Done here, call the callback.
24 silly fetchPackageMetaData //this.wait.hide();
24 silly fetchPackageMetaData callback.call();
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData //=============================================================================================
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // CUSTOM CONTENT RELATED METHODS
24 silly fetchPackageMetaData // _________________________________________________________________________________________________________________
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Get the view's custom Content.
24 silly fetchPackageMetaData //=============================================================================================
24 silly fetchPackageMetaData this.getViewCustomContent = function(view)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData this.clearLastCustomContent();
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var sAbsoluteURL = PORTAL_IS.TOOLS.getURL("JSONViewData/GetViewCustomContent");
24 silly fetchPackageMetaData sendAsynchronousRequest(sAbsoluteURL,
24 silly fetchPackageMetaData "view="+view,
24 silly fetchPackageMetaData this.renderCustomContent,
24 silly fetchPackageMetaData this,
24 silly fetchPackageMetaData []);
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData //=============================================================================================
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Render the custom content.
24 silly fetchPackageMetaData //=============================================================================================
24 silly fetchPackageMetaData this.renderCustomContent = function(xhrStatus, xhrResponse, callbackObj)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData DEBUG.out('Render custom content.');
24 silly fetchPackageMetaData callback = new Callback(callbackObj);
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if (xhrStatus != 200)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData // TODO: Handle error.
24 silly fetchPackageMetaData DEBUG.out('Retreiving custom content failed. ('+xhrStatus+')', DEBUG.ERROR);
24 silly fetchPackageMetaData callback.call();
24 silly fetchPackageMetaData return;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // The container Id is: "CustomContent_<VIEW NAME>_<RESOURCE KEY>".
24 silly fetchPackageMetaData // For example: the "ISW" view and the resource key of "top" will be rendered into "CustomContent_ISW_top".
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var newCustomContentJSONObj = JSON.parse(xhrResponse);
24 silly fetchPackageMetaData var keyArr = newCustomContentJSONObj.keyArr;
24 silly fetchPackageMetaData var view = newCustomContentJSONObj.view
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Override view.
24 silly fetchPackageMetaData switch (view)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData case "ICS": // No brake, group these views.
24 silly fetchPackageMetaData case "Authentication":
24 silly fetchPackageMetaData case "ISW":
24 silly fetchPackageMetaData case "MultiChallenge":
24 silly fetchPackageMetaData case "IswEntry":
24 silly fetchPackageMetaData var usedView = "LoginSequencePage";
24 silly fetchPackageMetaData break;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData default:
24 silly fetchPackageMetaData var usedView = view;
24 silly fetchPackageMetaData break;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Iterate on each of the custom content object.
24 silly fetchPackageMetaData var customContent, containerId, key;
24 silly fetchPackageMetaData //for (var key in keyMap)
24 silly fetchPackageMetaData for (var i=0; i<keyArr.length; i++)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData key = keyArr[i][0];
24 silly fetchPackageMetaData customContent = keyArr[i][1];
24 silly fetchPackageMetaData containerId = "CustomContent_"+usedView+"_"+key;
24 silly fetchPackageMetaData DEBUG.out('Render custom content: usedView:['+usedView+"] into:["+containerId+"]");
24 silly fetchPackageMetaData this.evaluateCustomContent(customContent, containerId);
24 silly fetchPackageMetaData this.lastRenderedCustomContentContainers.push(containerId);
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Call the callback.
24 silly fetchPackageMetaData callback.call();
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Encapsulate conditional rendering of the custom content.
24 silly fetchPackageMetaData this.evaluateCustomContent = function(customContent, containerId)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData destinationRef = document.getElementById(containerId);
24 silly fetchPackageMetaData if ( (destinationRef != null) && (destinationRef != undefined) )
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData evaluateHTMLContent(customContent, destinationRef);
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData //=============================================================================================
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Clear last rendered containers.
24 silly fetchPackageMetaData //=============================================================================================
24 silly fetchPackageMetaData this.clearLastCustomContent = function()
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData for (var containerIndex in this.lastRenderedCustomContentContainers)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData this.evaluateCustomContent("&nbsp;", this.lastRenderedCustomContentContainers[containerIndex]);
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData this.lastRenderedCustomContentContainers = new Array();
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData //=============================================================================================
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Render default view.
24 silly fetchPackageMetaData //=============================================================================================
24 silly fetchPackageMetaData this.renderDefaultView = function()
24 silly fetchPackageMetaData {}
24 silly fetchPackageMetaData //==================================================================================================================
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData //==================================================================================================================
24 silly fetchPackageMetaData this.logoutButtonHandler = function()
24 silly fetchPackageMetaData {}
24 silly fetchPackageMetaData //==================================================================================================================
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // DEPRECATED METHODS
24 silly fetchPackageMetaData // _________________________________________________________________________________________________________________
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // DEPRECATED, use viewManager.gotoNextView instead.
24 silly fetchPackageMetaData //==================================================================================================================
24 silly fetchPackageMetaData this.gotoNextState = function(callback)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData this.gotoNextView(null, callback);
24 silly fetchPackageMetaData return;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData //==================================================================================================================
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Extend ViewManager (Portal IS).
24 silly fetchPackageMetaData UCViewManager.prototype = new ViewManager();
24 silly fetchPackageMetaData window.viewManager = new UCViewManager();
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData </script>
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData <title>Check Point UserCheck</title>
24 silly fetchPackageMetaData </head>
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData <body class="usercheck_body_background_class" unselectable="on">
24 silly fetchPackageMetaData <noscript>
24 silly fetchPackageMetaData This portal requires browser which support JavaScript.<br>Please make sure that you are using an updated browser and that JavaScript is enabled. </noscript>
24 silly fetchPackageMetaData <div id='portalErrorMessage' class="portalErrorMessageDivHide">
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData <table cellpadding="0px" cellspacing="0px" class="portalErrorMessageTableContainer" width="100%">
24 silly fetchPackageMetaData <tr>
24 silly fetchPackageMetaData <td align="center">
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData <table cellpadding="0px" cellspacing="0px" class="portalErrorMessageTable">
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData <tr id="portalErrorMessage_title_container_row" class="portalMessage_title show" width="100%">
24 silly fetchPackageMetaData <td id="portalErrorMessage_title_container" height="10px" valign="middle" align="left" colspan="2">&nbsp;</td>
24 silly fetchPackageMetaData </tr>
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData <tr>
24 silly fetchPackageMetaData <td id="portalErrorMessage_container" align="left" style="padding: 10px;" colspan="2">&nbsp;</td>
24 silly fetchPackageMetaData </tr>
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData <tr>
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData <td>
24 silly fetchPackageMetaData <table cellpadding="0px" cellspacing="0px" width="100%"style=" padding: 10px;">
24 silly fetchPackageMetaData <tr>
24 silly fetchPackageMetaData <td id="portalMessage_error_report_container" align="left" valign="buttom" class="hide">
24 silly fetchPackageMetaData <span id="portalMessage_error_report_link" onclick="DEBUG.showErrorReport();" class="portal_link" style="left: 10px;">
24 silly fetchPackageMetaData Send error report </span>
24 silly fetchPackageMetaData </td>
24 silly fetchPackageMetaData <td id="portalMessage_error_button_container" align="right" height="10px;" valign="buttom">
24 silly fetchPackageMetaData <button id="portalErrorMessage_button" class="portalErrorMessage_button" onclick="hidePortalErrorMessage();">
24 silly fetchPackageMetaData OK </button>
24 silly fetchPackageMetaData </td>
24 silly fetchPackageMetaData </tr>
24 silly fetchPackageMetaData </table>
24 silly fetchPackageMetaData </td>
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData </tr>
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData </table>
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData </td>
24 silly fetchPackageMetaData </tr>
24 silly fetchPackageMetaData </table>
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData </div>
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData <div id='portalMessage' class="portalMessageDivHide">
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData <table cellpadding="0px" cellspacing="0px" class="portalMessageTableContainer" width="100%">
24 silly fetchPackageMetaData <tr>
24 silly fetchPackageMetaData <td align="center">
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData <table cellpadding="0px" cellspacing="0px" class="portalMessageTable">
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData <tr id="portalMessage_title_container_row" class="portalMessage_title show">
24 silly fetchPackageMetaData <td id="portalMessage_title_container" class="portalMessage_title_td" valign="middle" align="left">
24 silly fetchPackageMetaData &nbsp;
24 silly fetchPackageMetaData </td>
24 silly fetchPackageMetaData </tr>
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData <tr>
24 silly fetchPackageMetaData <td id="portalMessage_container" align="left" style="padding: 10px;">
24 silly fetchPackageMetaData &nbsp;
24 silly fetchPackageMetaData </td>
24 silly fetchPackageMetaData </tr>
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData <tr id="portalMessage_textarea_container_row" class="hide">
24 silly fetchPackageMetaData <td id="portalMessage_textarea_container" align="left" style="padding: 10px;">
24 silly fetchPackageMetaData </td>
24 silly fetchPackageMetaData </tr>
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData <tr id="portalMessage_validation_message_container_row" class="show">
24 silly fetchPackageMetaData <td id="portalMessage_validation_message_container" align="left" class="portalMessage_validation_submessage" style="padding: 10px;">
24 silly fetchPackageMetaData &nbsp;
24 silly fetchPackageMetaData </td>
24 silly fetchPackageMetaData </tr>
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData <tr id="portalMessage_submessage_container_row" class="hide">
24 silly fetchPackageMetaData <td id="portalMessage_submessage_container" align="left" class="portalMessage_submessage" style="padding: 10px;">
24 silly fetchPackageMetaData &nbsp;
24 silly fetchPackageMetaData </td>
24 silly fetchPackageMetaData </tr>
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData <tr>
24 silly fetchPackageMetaData <td align="center" height="10px;" valign="buttom" style="padding: 10px;" colspan="2">
24 silly fetchPackageMetaData <div id="portalMessage_ok_button_container" class="show" style="text-align: right;">
24 silly fetchPackageMetaData <button id="portalMessage_button" class="portalMessage_button" onclick="hidePortalMessage();">
24 silly fetchPackageMetaData OK </button>
24 silly fetchPackageMetaData </div>
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData <div id="portalMessage_bool_button_container" class="hide">
24 silly fetchPackageMetaData <button id="portalMessage_yes_button" class="portalMessage_button" onclick="hidePortalMessage();">
24 silly fetchPackageMetaData BUTTON.YES </button>
24 silly fetchPackageMetaData &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
24 silly fetchPackageMetaData <button id="portalMessage_no_button" class="portalMessage_button" onclick="hidePortalMessage();">
24 silly fetchPackageMetaData BUTTON.NO </button>
24 silly fetchPackageMetaData </div>
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData <div id="portalMessage_submit_button_container" class="hide">
24 silly fetchPackageMetaData <button id="portalMessage_submit_button" class="portalMessage_button" onclick="hidePortalMessage();">
24 silly fetchPackageMetaData BUTTON.SUBMIT </button>
24 silly fetchPackageMetaData &nbsp;&nbsp;&nbsp;
24 silly fetchPackageMetaData <button id="portalMessage_cancel_button" class="portalMessage_button" onclick="hidePortalMessage();">
24 silly fetchPackageMetaData Cancel </button>
24 silly fetchPackageMetaData </div>
24 silly fetchPackageMetaData </td>
24 silly fetchPackageMetaData </tr>
24 silly fetchPackageMetaData </table>
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData </td>
24 silly fetchPackageMetaData </tr>
24 silly fetchPackageMetaData </table>
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData </div>
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData <div id='portalGeneralContainer' class="portalMessageDivHide">
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData <table cellpadding="0px" cellspacing="0px" class="portalMessageTableContainer" width="100%">
24 silly fetchPackageMetaData <tr>
24 silly fetchPackageMetaData <td align="center">
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData <table cellpadding="0px" cellspacing="0px" class="portalMessageTable">
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData <tr id="portalGeneralContainer_title_container_row" class="portalMessage_title show" width="100%">
24 silly fetchPackageMetaData <td id="portalGeneralContainer_title_container" height="10px" valign="middle" align="left">
24 silly fetchPackageMetaData &nbsp;
24 silly fetchPackageMetaData </td>
24 silly fetchPackageMetaData </tr>
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData <tr>
24 silly fetchPackageMetaData <td id="portalGeneralContainer_container" align="left" style="padding: 10px;">
24 silly fetchPackageMetaData &nbsp;
24 silly fetchPackageMetaData </td>
24 silly fetchPackageMetaData </tr>
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData </table>
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData </td>
24 silly fetchPackageMetaData </tr>
24 silly fetchPackageMetaData </table>
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData </div>
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData <div id='PortalErrorScreenShader' class="screenShaderHide">
24 silly fetchPackageMetaData <table cellpadding="0px" cellspacing="0px" width="100%" height="100%">
24 silly fetchPackageMetaData <tr>
24 silly fetchPackageMetaData <td>&nbsp;</td>
24 silly fetchPackageMetaData </tr>
24 silly fetchPackageMetaData </table>
24 silly fetchPackageMetaData </div>
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData <div id='PortalScreenShader' class="screenShaderHide">
24 silly fetchPackageMetaData <table cellpadding="0px" cellspacing="0px" width="100%" height="100%">
24 silly fetchPackageMetaData <tr>
24 silly fetchPackageMetaData <td>&nbsp;</td>
24 silly fetchPackageMetaData </tr>
24 silly fetchPackageMetaData </table>
24 silly fetchPackageMetaData </div>
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData <div id="portal_main_view" class="div_expanded" unselectable="on">
24 silly fetchPackageMetaData <table height="100%" width="100%" border="0" cellpadding="0" cellspacing="0" class="">
24 silly fetchPackageMetaData <tr>
24 silly fetchPackageMetaData <td id="portal_center_div" valign="top" unselectable="on" class="usercheck_main_background_class">
24 silly fetchPackageMetaData <div id="portal_top_pane_div" class="usercheck_header_class">
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData <!--position: fixed; bottom: -1px; left: 50%; margin-left: -435px; -->
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData <table width="100%" cellpadding="0" cellspacing="0" class="usercheck_header_table_class usercheck_content_table_class">
24 silly fetchPackageMetaData <tr>
24 silly fetchPackageMetaData <td class="usercheck_header_left_class" unselectable="on">
24 silly fetchPackageMetaData </td>
24 silly fetchPackageMetaData <td class="usercheck_header_center_class" unselectable="on">
24 silly fetchPackageMetaData <div class="usercheck_page_title_class" id="usercheck_page_title" unselectable="on" >UserCheck</div>
24 silly fetchPackageMetaData </td>
24 silly fetchPackageMetaData <td id="usercheck_header_right_logo" class="usercheck_header_right_class" unselectable="on">
24 silly fetchPackageMetaData <img class="usercheck_company_logo_class" id="usercheck_company_logo" ></img>
24 silly fetchPackageMetaData </td>
24 silly fetchPackageMetaData <td id="usercheck_header_right_empty" class="usercheck_header_right_empty_class" unselectable="on">
24 silly fetchPackageMetaData </td>
24 silly fetchPackageMetaData </tr>
24 silly fetchPackageMetaData </table>
24 silly fetchPackageMetaData </div>
24 silly fetchPackageMetaData <div style="">&nbsp;</div><div style="">&nbsp;</div><div style="">&nbsp;</div>
24 silly fetchPackageMetaData <div style="text-align: center;" unselectable="on">
24 silly fetchPackageMetaData <table id="usercheck_content_table" cellpadding="0" cellspacing="0" class="usercheck_content_table_class">
24 silly fetchPackageMetaData <tr>
24 silly fetchPackageMetaData <td rowspan="3" valign="top" class="usercheck_message_icon_column"><div class="usercheck_message_icon_class" id="usercheck_img_div" unselectable="on">&nbsp;</div></td>
24 silly fetchPackageMetaData <td><div id="usercheck_title_div" class="usercheck_title_class" unselectable="on">&nbsp;</div></td>
24 silly fetchPackageMetaData </tr>
24 silly fetchPackageMetaData <tr>
24 silly fetchPackageMetaData <td><div id="usercheck_main_div" class="usercheck_message_class" unselectable="on">&nbsp;</div></td>
24 silly fetchPackageMetaData </tr>
24 silly fetchPackageMetaData <tr>
24 silly fetchPackageMetaData <td><div id="usercheck_error_div" unselectable="on">&nbsp;</div></td>
24 silly fetchPackageMetaData </tr>
24 silly fetchPackageMetaData <tr>
24 silly fetchPackageMetaData <td colspan="2" style="text-align: center;" unselectable="on">
24 silly fetchPackageMetaData <table style="margin-right: -10px; width: 50%; float: right;"><tr><td>
24 silly fetchPackageMetaData <center>
24 silly fetchPackageMetaData <div id="usercheck_cancel_div" class="usercheck_ok_button_div_class">&nbsp;</div>
24 silly fetchPackageMetaData </center>
24 silly fetchPackageMetaData </td><td>
24 silly fetchPackageMetaData <center>
24 silly fetchPackageMetaData <div id="usercheck_ok_div" class="usercheck_ok_button_div_class">&nbsp;</div>
24 silly fetchPackageMetaData </center>
24 silly fetchPackageMetaData </td></tr></table>
24 silly fetchPackageMetaData </td>
24 silly fetchPackageMetaData </tr>
24 silly fetchPackageMetaData </table></div>
24 silly fetchPackageMetaData </td>
24 silly fetchPackageMetaData </tr>
24 silly fetchPackageMetaData <tr>
24 silly fetchPackageMetaData <td id ="usercheck_footer_td" class="usercheck_footer_class usercheck_footer_height_class">
24 silly fetchPackageMetaData <div id="portal_bottom_pane_div">
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData <!--position: fixed; bottom: -1px; left: 50%; margin-left: -435px; -->
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData <table id="footer_table_logo" cellpadding="0" cellspacing="0" class="usercheck_footer_table_class footer_no_logo">
24 silly fetchPackageMetaData <tr>
24 silly fetchPackageMetaData <td class="usercheck_footer_height_class">
24 silly fetchPackageMetaData <div id="usercheck_language_selection_div" class="usercheck_lang_select_div_class" style="display: none;">
24 silly fetchPackageMetaData Language: <select id="usercheck_language_selection" class="usercheck_lang_select_class" onchange="javascript:window.oUserAction.handleLanguageChange();">
24 silly fetchPackageMetaData </select>
24 silly fetchPackageMetaData </div>
24 silly fetchPackageMetaData </td>
24 silly fetchPackageMetaData </tr>
24 silly fetchPackageMetaData </table> </div>
24 silly fetchPackageMetaData </td>
24 silly fetchPackageMetaData </tr>
24 silly fetchPackageMetaData </table>
24 silly fetchPackageMetaData </div>
24 silly fetchPackageMetaData </body>
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData <script type="text/javascript">
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData //Continue the background image on IE6-7 graphics design.
24 silly fetchPackageMetaData if(window.browserDetails.browserType == window.BrowserType.IE && window.browserDetails.browserVersion <= 7 && (document.documentMode === undefined || document.documentMode <= 7))
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData var footer_td = document.getElementById('usercheck_footer_td');
24 silly fetchPackageMetaData footer_td.setAttribute("className", footer_td.getAttribute("className") + " usercheck_main_background_class");
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData UserCheck.DataObj.IID = "6562BAB3-CB54-35B8-C19D-29D4AE36E696";
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData UserCheck.DataObj.frame = 0;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData /*this is a common object for PortalMain and PortalMainDlp. functions here should be empty */
24 silly fetchPackageMetaData window.UserActionCommon = function()
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData this.DlpHttpLearning = function(adminMessage,HttpLearningEnabled)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData this.DlpHideCancelBtn = function(action)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData window.oUserActionCommon = new window.UserActionCommon();
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var g_userID = "";
24 silly fetchPackageMetaData var g_refreshFiles = false;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData window.UserAction = function()
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData this.incidentObject = {};
24 silly fetchPackageMetaData this.textAreaText = "";
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData this.getCorrectClass = function()
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData var correctClass = "class";
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData //Choose the correct class attribute name (in IE6-7 we need "className" instead of "class") according to IE version - but check for compatibility first!
24 silly fetchPackageMetaData if(window.browserDetails.browserType == window.BrowserType.IE && window.browserDetails.browserVersion <= 7 && document.documentMode === undefined)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData correctClass = "className";
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData return correctClass;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData // Initialize.
24 silly fetchPackageMetaData //=============================================================================================
24 silly fetchPackageMetaData this.init = function(cancelPage)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData if (typeof cancelPage == 'undefined')
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData cancelPage = false;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData var requestData = {
24 silly fetchPackageMetaData IID: "-1",
24 silly fetchPackageMetaData UserID: "",
24 silly fetchPackageMetaData IsThinPortal: false,
24 silly fetchPackageMetaData UserLang: "",
24 silly fetchPackageMetaData GetCancelPage: cancelPage
24 silly fetchPackageMetaData };
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData requestData.IID = UserCheck.DataObj.IID;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var cookie = getCookie('UserCheck_UserID');
24 silly fetchPackageMetaData requestData.UserID = cookie != null ? cookie : "";
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData requestData.IsThinPortal = window.isThinPortal === true ? true : false;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var selectedLanguage = getCookie('UserCheck_Selected_Language');
24 silly fetchPackageMetaData if(selectedLanguage == null)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData selectedLanguage = "";
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData requestData.UserLang = selectedLanguage;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var sAbsoluteURL = PORTAL_IS.TOOLS.getURL("data/GetUserCheckIncidentData");
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if (window.isThinPortal === true)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData //Create a custom timeout handler for the thin portal.
24 silly fetchPackageMetaData PORTAL_IS.AJAX_MGR.customTimeoutHandler = function()
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData window.location = "about:blank";
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData sendAsynchronousRequest(sAbsoluteURL,
24 silly fetchPackageMetaData flattenObject(requestData),
24 silly fetchPackageMetaData this.handleUserCheckIncidentData,
24 silly fetchPackageMetaData this,
24 silly fetchPackageMetaData [new Callback()]);
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData //Toggles the button's state from enabled to disabled and vice versa.
24 silly fetchPackageMetaData this.setButtonMode = function(buttonState, buttonID)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData var button = document.getElementById(buttonID);
24 silly fetchPackageMetaData if(button == null)
24 silly fetchPackageMetaData return;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var correctClass = window.oUserAction.getCorrectClass();
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if(buttonState)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData //Enable the button.
24 silly fetchPackageMetaData button.setAttribute(correctClass, "button");
24 silly fetchPackageMetaData button.onclick = function(){ javascript:oUserAction.submitOK(); };
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData button.style.cursor = "pointer";
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData //Disable the button.
24 silly fetchPackageMetaData button.setAttribute(correctClass, "button buttonDisabled");
24 silly fetchPackageMetaData button.onclick = null;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData button.style.cursor = "default";
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData //Changes the button CSS class (support for IE6-8). buttonCLS is for additional classes to be added to the button.
24 silly fetchPackageMetaData this.setButtonState = function(state, buttonID, buttonCLS)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData if (!buttonID)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData buttonID = 'UserCheck_OK_Button';
24 silly fetchPackageMetaData buttonCLS = '';
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var correctClass = window.oUserAction.getCorrectClass();
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var button = document.getElementById(buttonID);
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if(button.getAttribute(correctClass).indexOf("Disabled") == -1)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData //The button is not disabled.
24 silly fetchPackageMetaData button.setAttribute(correctClass, "button button" + state + " " + buttonCLS);
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData this.handleUserCheckIncidentData = function(xhrStatus, xhrResponse, callback)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData DEBUG.out("UserAction::handleUserCheckIncidentData");
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if (callback == undefined)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData callback = new Callback();
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if (xhrStatus != 200)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData DEBUG.out('Retreiving UserCheck Incident Data failed. ('+xhrStatus+')', DEBUG.ERROR);
24 silly fetchPackageMetaData callback.call();
24 silly fetchPackageMetaData return;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData this.incidentObject = JSON.parse(xhrResponse);
24 silly fetchPackageMetaData var Languages = this.incidentObject.Languages;
24 silly fetchPackageMetaData var UserCheckLogoID = this.incidentObject.UserCheckLogoID;
24 silly fetchPackageMetaData var RedirectToAddr = this.incidentObject.RedirectToAddr;
24 silly fetchPackageMetaData var AutoRedirect = this.incidentObject.AutoRedirect;
24 silly fetchPackageMetaData var ExternalSystemURL = this.incidentObject.ExternalSystemURL;
24 silly fetchPackageMetaData var Action = this.incidentObject.Action;
24 silly fetchPackageMetaData var Variables = this.incidentObject.Variables;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData this.incidentObject.HasBeenCancelled = false;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData setCookie('UserCheck_UserID', this.incidentObject.UserID, 31556926);
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if (Variables['product'] != 'Threat Extraction')
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData if(AutoRedirect == true && RedirectToAddr != "")
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData if (window.isThinPortal === undefined)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData //We have an address and auto redirect is true so redirect to that URL.
24 silly fetchPackageMetaData // if (RedirectToAddr.indexOf('http://') != 0)
24 silly fetchPackageMetaData if ((RedirectToAddr.indexOf('http://') != 0) &&(RedirectToAddr.indexOf('https://') != 0))
24 silly fetchPackageMetaData RedirectToAddr = "http://" + RedirectToAddr;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData window.location = RedirectToAddr;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else
24 silly fetchPackageMetaData window.location = "about:blank"; //No reason to redirect in the Thin Portal
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData if (Action == "SCRUB-SUCCESS")
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData // in scrub success page, if not mobile or thin, give more space for the list of original files names and info
24 silly fetchPackageMetaData if(window.browserDetails.isMobile() === false && window.isThinPortal === undefined)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData var content_table = document.getElementById("usercheck_content_table");
24 silly fetchPackageMetaData if (content_table != null)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData content_table.style.tableLayout="auto";
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var message_div = document.getElementById("usercheck_main_div");
24 silly fetchPackageMetaData if (message_div != null)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData message_div.style.minWidth="auto";
24 silly fetchPackageMetaData message_div.style.maxWidth="700px";
24 silly fetchPackageMetaData message_div.style.whiteSpace="nowrap";
24 silly fetchPackageMetaData message_div.style.wordWrap="normal";
24 silly fetchPackageMetaData message_div.style.overflow="auto";
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var requestData = {
24 silly fetchPackageMetaData IID: "-1"
24 silly fetchPackageMetaData };
24 silly fetchPackageMetaData requestData.IID = UserCheck.DataObj.IID;
24 silly fetchPackageMetaData var sAbsoluteURL = PORTAL_IS.TOOLS.getURL("data/GetScrubFiles");
24 silly fetchPackageMetaData sendAsynchronousRequest(sAbsoluteURL,
24 silly fetchPackageMetaData flattenObject(requestData),
24 silly fetchPackageMetaData this.handleScrubbingFiles,
24 silly fetchPackageMetaData this,
24 silly fetchPackageMetaData [new Callback()]);
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if(ExternalSystemURL != "")
24 silly fetchPackageMetaData //We have an external system address so redirect to that URL.
24 silly fetchPackageMetaData // window.location = ExternalSystemURL + (this.incidentObject.ForwardParams == true ? "?IncidentID=" + UserCheck.DataObj.IID + "&UserID=" + this.incidentObject.UserID : "");
24 silly fetchPackageMetaData if (this.incidentObject.ForwardParams == true)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData window.location = ExternalSystemURL + "?IncidentID=" + UserCheck.DataObj.IID + "&UserID=" + this.incidentObject.UserID;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData window.location = ExternalSystemURL;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData this.prepareLanguageSelection();
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if(window.self !== window.top)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData //We are inside a frame. Display small version of the portal and give link to a full version of the portal in new tab/window.
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var url = '<a href="' + window.location + "&frame=1" + '" target="_blank">';
24 silly fetchPackageMetaData if (Action == "SCRUB-SUCCESS")
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData Action = "INFORM";
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData url += draw_img_tag(getURL("img/" + Action.toLowerCase() + ".png")) + '&nbsp;&nbsp;';
24 silly fetchPackageMetaData url += Action == 'BLOCK' ? PORTAL_IS.L10N.L10N_Obj.getStr("UC.BLOCKED_IFRAME") : PORTAL_IS.L10N.L10N_Obj.getStr("UC.INFO_IFRAME");
24 silly fetchPackageMetaData url += '</a>';
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData document.body.innerHTML = url;
24 silly fetchPackageMetaData document.body.style.backgroundImage = 'none';
24 silly fetchPackageMetaData document.body.style.textAlign = 'center';
24 silly fetchPackageMetaData document.body.style.verticalAlign = 'text-bottom';
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData //Decide which footer to display according to the action type (for Block and Limit we display footer without CP logo).
24 silly fetchPackageMetaData if(window.isThinPortal === true)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData var thin_table = document.getElementById('usercheck_thin_table');
24 silly fetchPackageMetaData if(thin_table != null && Action != 'BLOCK' && Action != 'LIMIT')
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData var correctClass = window.oUserAction.getCorrectClass();
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData thin_table.setAttribute(correctClass, "usercheck_main_mobile_background_class with_logo");
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData var logo_footer = document.getElementById('footer_table_logo');
24 silly fetchPackageMetaData if(logo_footer != null && Action != 'BLOCK' && Action != 'LIMIT')
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData var correctClass = window.oUserAction.getCorrectClass();
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData logo_footer.setAttribute(correctClass, "usercheck_footer_table_class footer_logo");
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData g_userID = this.incidentObject.UserID;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if (Action == "SCRUB-SUCCESS")
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData Action = "INFORM";
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData //Draw incident image according to the incident type
24 silly fetchPackageMetaData if(document.getElementById('usercheck_img_div') !== null)
24 silly fetchPackageMetaData document.getElementById('usercheck_img_div').innerHTML = draw_img_tag(getURL("img/" + Action.toLowerCase() + ".png"));
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if(this.incidentObject.IsLogoConfigured)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData //The page has a logo defined in the GUI - load it.
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData //Desktop header.
24 silly fetchPackageMetaData var header_right_logo = document.getElementById('usercheck_header_right_logo');
24 silly fetchPackageMetaData if(header_right_logo != null)
24 silly fetchPackageMetaData if(window.browserDetails.browserType == window.BrowserType.IE && window.browserDetails.browserVersion <= 7)
24 silly fetchPackageMetaData header_right_logo.style.display = "block";
24 silly fetchPackageMetaData else
24 silly fetchPackageMetaData header_right_logo.style.display = "table-cell";
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var header_right_empty = document.getElementById('usercheck_header_right_empty');
24 silly fetchPackageMetaData if(header_right_empty != null)
24 silly fetchPackageMetaData header_right_empty.style.display = "none";
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData //Mobile header.
24 silly fetchPackageMetaData var mobile_header = document.getElementById('header_mobile_div');
24 silly fetchPackageMetaData if(mobile_header != null)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData mobile_header.style.display = "block";
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData //Company logo.
24 silly fetchPackageMetaData var company_logo = document.getElementById('usercheck_company_logo');
24 silly fetchPackageMetaData if(company_logo != null)
24 silly fetchPackageMetaData company_logo.src = getURL("images/interactions/" + UserCheckLogoID + ".png");
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else if(window.isThinPortal === true)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData //If there is no logo defined, display the default logo in the thin portal.
24 silly fetchPackageMetaData var company_logo = document.getElementById('usercheck_company_logo');
24 silly fetchPackageMetaData if(company_logo != null)
24 silly fetchPackageMetaData company_logo.src = getURL("img/cp_logo_mobile_thin.png");
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData //Start the timeout manager.
24 silly fetchPackageMetaData UserCheck.tools.oTimeoutManager.startTimeoutTimer(this.incidentObject.Expiration - 15, this.handleTimeout);
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if (UserCheck.DataObj.GetSingleIncidentReview !== undefined && UserCheck.DataObj.GetSingleIncidentReview == 1)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData window.singleIncident = new SingleIncident();
24 silly fetchPackageMetaData singleIncident.init();
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData callback.call();
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData this.submitOK = function()
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData //This function determines if it is OK to proceed with sending a response if all validation criteria are met.
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData //If we are in a Block action in thin portal, just redirect to about:blank.
24 silly fetchPackageMetaData if (window.isThinPortal === true && window.oUserAction.incidentObject.Action === "BLOCK")
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData window.location = "about:blank";
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if(document.getElementById('UserCheck_Textual_Input') != null)
24 silly fetchPackageMetaData //Verify we have the real textarea!
24 silly fetchPackageMetaData if(document.getElementById('UserCheck_Textual_Input').value !== undefined)
24 silly fetchPackageMetaData //Unfocus the text-area.
24 silly fetchPackageMetaData document.getElementById('UserCheck_Textual_Input').blur();
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if(!window.oUserAction.highlightInput())
24 silly fetchPackageMetaData //There was some user input missing - don't continue.
24 silly fetchPackageMetaData return;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var cookie = getCookie('UserCheck_UserID');
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var requestData = {};
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData requestData.IID = "-1";
24 silly fetchPackageMetaData requestData.UserOption = "OK";
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData requestData.UserID = cookie;
24 silly fetchPackageMetaData requestData.IsReasonExist = true;
24 silly fetchPackageMetaData if(document.getElementById('UserCheck_Textual_Input') != null)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData var reason = document.getElementById('UserCheck_Textual_Input').value;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData //If the reason box is not found, there is nothing to enforce.
24 silly fetchPackageMetaData if(reason === undefined)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData reason = "";
24 silly fetchPackageMetaData requestData.IsReasonExist = false;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else if(window.oUserAction.incidentObject.IsReasonEnforced === true && (reason.length == 0 || reason.length > 400))
24 silly fetchPackageMetaData return;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData requestData.Reason = reason;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData requestData.IsReasonExist = false;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData //Sometimes the cookie is not written correctly, so used global user.
24 silly fetchPackageMetaData if(requestData.UserID == null || requestData.UserID == "")
24 silly fetchPackageMetaData requestData.UserID = g_userID;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData requestData.IID = UserCheck.DataObj.IID;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var sAbsoluteURL = PORTAL_IS.TOOLS.getURL("data/GetUserCheckUserChoiceData");
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData sendAsynchronousRequest(sAbsoluteURL,
24 silly fetchPackageMetaData flattenObject(requestData),
24 silly fetchPackageMetaData this.handleUserCheckChoiceData,
24 silly fetchPackageMetaData this,
24 silly fetchPackageMetaData [new Callback()]);
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData this.submitCancel = function()
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData if(window.oUserAction.incidentObject.CancelURL !== undefined && window.oUserAction.incidentObject.CancelURL !== "")
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData window.location = window.oUserAction.incidentObject.CancelURL;
24 silly fetchPackageMetaData return;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData if (window.isThinPortal == true)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData window.location = "about:blank";
24 silly fetchPackageMetaData return;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData this.init(true);
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData this.handleUserCheckChoiceData = function(xhrStatus, xhrResponse, callback)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData try
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData window.external.OKButtonClickedResponseReceived('Done handling request');
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData catch(err)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData //do nothing, this is probably the fat client
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData DEBUG.out("UserAction::handleUserCheckChoiceData");
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if (callback == undefined)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData callback = new Callback();
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if (xhrStatus != 200)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData DEBUG.out('Retreiving UserCheck Incident Data failed. ('+xhrStatus+')', DEBUG.ERROR);
24 silly fetchPackageMetaData callback.call();
24 silly fetchPackageMetaData return;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var newViewJSONObj = JSON.parse(xhrResponse);
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var RedirectToAddr = newViewJSONObj.RedirectToAddr;
24 silly fetchPackageMetaData if (window.oUserAction.incidentObject.Variables['product'] != 'Threat Extraction')
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData if(RedirectToAddr != "")
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData var frame = "0";
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData frame = UserCheck.DataObj.frame;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if(typeof frame === "undefined" || frame == "0" || frame == "")
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData if (window.isThinPortal === undefined)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData //We have an address so redirect to that URL.
24 silly fetchPackageMetaData if ((RedirectToAddr.indexOf('http://') != 0) &&(RedirectToAddr.indexOf('https://') != 0))
24 silly fetchPackageMetaData RedirectToAddr = "http://" + RedirectToAddr;
24 silly fetchPackageMetaData window.location = RedirectToAddr;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else
24 silly fetchPackageMetaData window.location = "about:blank";
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData if (window.isThinPortal === undefined)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData //We have an address so redirect to that URL in the parent frame.
24 silly fetchPackageMetaData if ((RedirectToAddr.indexOf('http://') != 0) &&(RedirectToAddr.indexOf('https://') != 0))
24 silly fetchPackageMetaData RedirectToAddr = "http://" + RedirectToAddr;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData window.opener.location = RedirectToAddr;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData window.opener.location = "about:blank";
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData window.close();
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData var frame = "0";
24 silly fetchPackageMetaData frame = UserCheck.DataObj.frame;
24 silly fetchPackageMetaData if(typeof frame === "undefined" || frame == "0" || frame == "")
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData if (window.isThinPortal == true)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData window.location = "about:blank";
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData if (window.isThinPortal == true)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData window.opener.location = "about:blank";
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData window.close();
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData window.location.reload();
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData this.handleUserReportWrongCategoryData = function(xhrStatus, xhrResponse, callback)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData DEBUG.out("UserAction::handleUserLogData");
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData this.handleTimeout = function()
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData var requestData = {
24 silly fetchPackageMetaData IID: "-1"
24 silly fetchPackageMetaData };
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData requestData.IID = UserCheck.DataObj.IID;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var sAbsoluteURL = PORTAL_IS.TOOLS.getURL("ExtendTimeout");
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData sendAsynchronousRequest(sAbsoluteURL,
24 silly fetchPackageMetaData flattenObject(requestData),
24 silly fetchPackageMetaData window.oUserAction.handleTimeoutExtension,
24 silly fetchPackageMetaData this,
24 silly fetchPackageMetaData [new Callback()]);
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData this.handleTimeoutExtension = function(xhrStatus, xhrResponse, callback)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData DEBUG.out("UserAction::handleTimeoutExtension");
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if (callback == undefined)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData callback = new Callback();
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if (xhrStatus != 200)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData if (window.isThinPortal === undefined)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData DEBUG.out('Retreiving UserCheck Timeout Extension data failed. ('+xhrStatus+')', DEBUG.ERROR);
24 silly fetchPackageMetaData callback.call();
24 silly fetchPackageMetaData return;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData window.location = "about:blank";
24 silly fetchPackageMetaData return;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData var extensionObject = JSON.parse(xhrResponse);
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if(extensionObject.ReturnCode == "SUCCESS")
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData UserCheck.tools.oTimeoutManager.startTimeoutTimer(extensionObject.Expiration - 15, window.oUserAction.handleTimeout);
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData if(window.isThinPortal === undefined)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData var button = document.getElementById('UserCheck_OK_Button');
24 silly fetchPackageMetaData if(button !=null)
24 silly fetchPackageMetaData button.style.display = "none";
24 silly fetchPackageMetaData var select = document.getElementById('usercheck_language_selection');
24 silly fetchPackageMetaData if(select != null)
24 silly fetchPackageMetaData select.disabled = true;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData showPortalMessage(PORTAL_IS.L10N.L10N_Obj.getStr("TIMEOUT") + " <a href='" + window.oUserAction.incidentObject.RedirectToAddr + "'>" + PORTAL_IS.L10N.L10N_Obj.getStr("RETRY") + "</a>", null, PORTAL_IS.MESSAGE_TYPE.Display, true);
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData /* If we are in thin portal, redirect to about:blank
24 silly fetchPackageMetaData so that client can catch it and act accordingly. */
24 silly fetchPackageMetaData window.location = "about:blank";
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData //Prepare for language selection.
24 silly fetchPackageMetaData this.prepareLanguageSelection = function()
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData var Languages = this.incidentObject.Languages;
24 silly fetchPackageMetaData var prevSelectedLanguage = null;
24 silly fetchPackageMetaData var userSelected = false;
24 silly fetchPackageMetaData if (UserCheck.DataObj.Lang != "" && UserCheck.DataObj.Lang !== undefined)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData prevSelectedLanguage = UserCheck.DataObj.Lang;
24 silly fetchPackageMetaData userSelected = true;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else if (this.incidentObject.PreferredLang != "")
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData prevSelectedLanguage = this.incidentObject.PreferredLang;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData prevSelectedLanguage = getCookie('UserCheck_Selected_Language');
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData var count = 0;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData //If there is no cookie, get the browser locale.
24 silly fetchPackageMetaData if(prevSelectedLanguage == null)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData var langArr = {};
24 silly fetchPackageMetaData for(var Language in Languages)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData langArr[Languages[Language].LanguageCode] = true;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData prevSelectedLanguage = PORTAL_IS.L10N.L10N_Obj.selectLanguage(langArr);
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if(document.getElementById('usercheck_language_selection_div') != null)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData count = 0;
24 silly fetchPackageMetaData for(var Language in Languages)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData var select = document.getElementById('usercheck_language_selection');
24 silly fetchPackageMetaData select.options[select.options.length] = new Option(Languages[Language].Language, Language, false, Language === prevSelectedLanguage);
24 silly fetchPackageMetaData count++;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData //Display language selection only if NOT in thin portal.
24 silly fetchPackageMetaData if(count > 1 && window.isThinPortal === undefined)
24 silly fetchPackageMetaData document.getElementById('usercheck_language_selection_div').style.display = "block";
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData this.handleLanguageChange(true, userSelected);
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData //Handles language change.
24 silly fetchPackageMetaData this.handleLanguageChange = function(noReloadLang, userSelected)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData var select = document.getElementById('usercheck_language_selection');
24 silly fetchPackageMetaData var selectedLanguage = select.options[select.selectedIndex].value;
24 silly fetchPackageMetaData if(noReloadLang === true)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData //No need to load the language - if it is already loaded.
24 silly fetchPackageMetaData this.asyncLanguageChangeCallback(userSelected);
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData //Reload language strings.
24 silly fetchPackageMetaData PORTAL_IS.L10N.L10N_Obj.reloadLanguageTo(selectedLanguage, "en", this.asyncLanguageChangeCallback);
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData this.checkBoxExists = function(adminMessage)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData if(adminMessage.indexOf("UserCheck_Confirm_Checkbox") != -1)
24 silly fetchPackageMetaData return true;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData return false;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData this.textareaExists = function(adminMessage)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData if(adminMessage.indexOf("UserCheck_Textual_Input") != -1)
24 silly fetchPackageMetaData return true;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData return false;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData this.asyncLanguageChangeCallback = function(userSelected)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData if (userSelected === undefined)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData userSelected = true;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData var select = document.getElementById('usercheck_language_selection');
24 silly fetchPackageMetaData var check = document.getElementById('UserCheck_Confirm_Checkbox');
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var selectedLanguage = "Default";
24 silly fetchPackageMetaData if(select != null)
24 silly fetchPackageMetaData selectedLanguage = select.options[select.selectedIndex].value;
24 silly fetchPackageMetaData var checkBoxValue = check != null ? check.checked : false;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData //Save cookie for the selected language. Only if it is from a User Selection.
24 silly fetchPackageMetaData if (userSelected)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData setCookie('UserCheck_Selected_Language', selectedLanguage == "Default" ? "en" : selectedLanguage, 31556926, "/");
24 silly fetchPackageMetaData var cookieVal = getCookie('UserCheck_UserID');
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var handleUpdateUserDataResponse = function(xhrStatus, xhrResponse, callback){
24 silly fetchPackageMetaData var newURL = window.location.href;
24 silly fetchPackageMetaData //alert("newURL '"+newURL+"'");
24 silly fetchPackageMetaData var langLoc = newURL.indexOf("&Lang=");
24 silly fetchPackageMetaData //alert("langLoc '"+langLoc+"'");
24 silly fetchPackageMetaData if (langLoc != -1)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData newURL = newURL.substring(0, langLoc);
24 silly fetchPackageMetaData //alert("newURL '"+newURL+"'");
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData window.location = newURL;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData sendAsynchronousRequest(getURL("UpdateUserData"),
24 silly fetchPackageMetaData "Language="+encodeURIComponent(selectedLanguage) + "&IID="+encodeURIComponent(UserCheck.DataObj.IID)+"&UserID="+cookieVal,
24 silly fetchPackageMetaData handleUpdateUserDataResponse,
24 silly fetchPackageMetaData this,
24 silly fetchPackageMetaData [new Callback()]);
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData //Keep this value globally for other funcs.
24 silly fetchPackageMetaData window.oUserAction.incidentObject.SelectedLanguage = selectedLanguage;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var Languages = window.oUserAction.incidentObject.Languages;
24 silly fetchPackageMetaData var TitleText = Languages[selectedLanguage].TitleText;
24 silly fetchPackageMetaData var AdminMessage = Languages[selectedLanguage].AdminMessage;
24 silly fetchPackageMetaData var CancelMessage = Languages[selectedLanguage].CancelMessage;
24 silly fetchPackageMetaData var OKButtonMessage = window.oUserAction.incidentObject.OKButtonMessage[selectedLanguage];
24 silly fetchPackageMetaData var CancelButtonMessage = window.oUserAction.incidentObject.CancelButtonMessage[selectedLanguage];
24 silly fetchPackageMetaData var SendButtonMessage = window.oUserAction.incidentObject.SendButtonMessage[selectedLanguage];
24 silly fetchPackageMetaData var MiddleButtonMessage = window.oUserAction.incidentObject.MiddleButtonMessage[selectedLanguage];
24 silly fetchPackageMetaData var HTTPLearningEnabled = window.oUserAction.incidentObject.HTTPLearningEnabled;
24 silly fetchPackageMetaData var PageTitle = Languages[selectedLanguage].PageTitle;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData document.getElementById('usercheck_title_div').innerHTML = TitleText;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if(window.oUserAction.incidentObject.HasBeenCancelled === undefined || window.oUserAction.incidentObject.HasBeenCancelled === false)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData if (window.oUserAction.incidentObject.IncidentStatus == 0 || window.oUserAction.incidentObject.IncidentStatus == 2 || window.oUserAction.incidentObject.IncidentStatus == 8)//ok or cancel or ok_scrubbing
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData document.getElementById('usercheck_main_div').innerHTML = AdminMessage;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else if (window.oUserAction.incidentObject.IncidentStatus == 3)// sent
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData // if http learning is enabled on action succeded show the HTTP_LEARNING message
24 silly fetchPackageMetaData if (HTTPLearningEnabled == true && window.oUserAction.incidentObject.RedirectToAddr != "")
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData var usercheck_main_div = document.getElementById('usercheck_main_div')
24 silly fetchPackageMetaData if (usercheck_main_div != null)
24 silly fetchPackageMetaData usercheck_main_div.innerHTML = "<p>" +PORTAL_IS.L10N.L10N_Obj.getStr("HTTP_LEARNING")+"</p>";
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else // an SMTP message
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData document.getElementById('usercheck_main_div').innerHTML = AdminMessage;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else if (window.oUserAction.incidentObject.IncidentStatus == 4)//discarded
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData document.getElementById('usercheck_main_div').innerHTML = AdminMessage;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else if (window.oUserAction.incidentObject.IncidentStatus == 5)//already sent
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData if (HTTPLearningEnabled == true && window.oUserAction.incidentObject.RedirectToAddr != "")
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData //if approved http and then refreshed the page
24 silly fetchPackageMetaData var usercheck_main_div = document.getElementById('usercheck_main_div')
24 silly fetchPackageMetaData if (usercheck_main_div != null)
24 silly fetchPackageMetaData usercheck_main_div.innerHTML = "<p>" +PORTAL_IS.L10N.L10N_Obj.getStr("HTTP_LEARNING")+"</p>";
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData document.getElementById('usercheck_main_div').innerHTML = AdminMessage;
24 silly fetchPackageMetaData var return_to_site_div = document.getElementById('usercheck_return_to_site_div')
24 silly fetchPackageMetaData if (return_to_site_div != null)
24 silly fetchPackageMetaData return_to_site_div.innerHTML = "<p style='color: #FF5000;font-weight: bold;'>" +PORTAL_IS.L10N.L10N_Obj.getStr("EMAIL_ALREADY_SENT") +"</p>";
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else if (window.oUserAction.incidentObject.IncidentStatus == 6)//already discarded
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData document.getElementById('usercheck_main_div').innerHTML = AdminMessage;
24 silly fetchPackageMetaData var return_to_site_div = document.getElementById('usercheck_return_to_site_div')
24 silly fetchPackageMetaData if (return_to_site_div != null)
24 silly fetchPackageMetaData return_to_site_div.innerHTML = "<p style='color: #FF5000;font-weight: bold;'>" +PORTAL_IS.L10N.L10N_Obj.getStr("EMAIL_ALREADY_DISCARDED") +"</p>";
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData document.getElementById('usercheck_main_div').innerHTML = "<p>" + PORTAL_IS.L10N.L10N_Obj.getStr("UNKOWN_INCIDENT_STATUS") + "</p>" + window.oUserAction.incidentObject.IncidentStatus;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var btnDiv = document.getElementById('usercheck_ok_div');
24 silly fetchPackageMetaData if (btnDiv != null)
24 silly fetchPackageMetaData btnDiv.innerHTML = OKButtonMessage;
24 silly fetchPackageMetaData btnDiv = document.getElementById('usercheck_cancel_div');
24 silly fetchPackageMetaData if (btnDiv != null)
24 silly fetchPackageMetaData btnDiv.innerHTML = CancelButtonMessage;
24 silly fetchPackageMetaData btnDiv = document.getElementById('usercheck_send_div');
24 silly fetchPackageMetaData // show the send button on SMTP (which is actually the send button) OR show it on inform action (which is actually OK button)
24 silly fetchPackageMetaData if (btnDiv != null && (window.oUserAction.incidentObject.RedirectToAddr == "" || window.oUserAction.incidentObject.Action == "INFORM") )
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData // alert("setting usercheck_send_div");
24 silly fetchPackageMetaData btnDiv.innerHTML = SendButtonMessage;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData btnDiv = document.getElementById('usercheck_middle_div');
24 silly fetchPackageMetaData if (btnDiv != null)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData // alert("setting discard button div");
24 silly fetchPackageMetaData btnDiv.innerHTML = MiddleButtonMessage;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData var goBackDiv = document.getElementById('usercheck_return_to_site_div');
24 silly fetchPackageMetaData if (goBackDiv)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData // show return to site only when its http violation AND if the action is: sent or discarded or already sent or already discarded or cancelled.
24 silly fetchPackageMetaData if (window.oUserAction.incidentObject.RedirectToAddr != "" && (window.oUserAction.incidentObject.IncidentStatus == 3 || window.oUserAction.incidentObject.IncidentStatus == 4 || window.oUserAction.incidentObject.IncidentStatus == 5 || window.oUserAction.incidentObject.IncidentStatus == 6 || window.oUserAction.incidentObject.IncidentStatus == 2))
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData goBackDiv.innerHTML = '<a href="' + window.oUserAction.incidentObject.RedirectToAddr + '">' + PORTAL_IS.L10N.L10N_Obj.getStr("RETURN_TO_SITE") + '</a>';
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else
24 silly fetchPackageMetaData document.getElementById('usercheck_main_div').innerHTML = CancelMessage;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var page_title = document.getElementById('usercheck_page_title');
24 silly fetchPackageMetaData if(page_title != null)
24 silly fetchPackageMetaData page_title.innerHTML = PageTitle;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var span = document.getElementById('UserCheck_OK_Button_span');
24 silly fetchPackageMetaData if(span != null)
24 silly fetchPackageMetaData span.innerHTML = PORTAL_IS.L10N.L10N_Obj.getStr('BUTTON.OK');
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData span = document.getElementById('UserCheck_Cancel_Button_span');
24 silly fetchPackageMetaData if(span != null)
24 silly fetchPackageMetaData span.innerHTML = PORTAL_IS.L10N.L10N_Obj.getStr('BUTTON.CANCEL');
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData span = document.getElementById('UserCheck_Send_Button_span');
24 silly fetchPackageMetaData if(span != null)
24 silly fetchPackageMetaData span.innerHTML = PORTAL_IS.L10N.L10N_Obj.getStr('BUTTON.SEND');
24 silly fetchPackageMetaData span = document.getElementById('UserCheck_Middle_Button_span');
24 silly fetchPackageMetaData if(span != null)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData if (window.oUserAction.incidentObject.RedirectToAddr == "")
24 silly fetchPackageMetaData span.innerHTML = PORTAL_IS.L10N.L10N_Obj.getStr('BUTTON.DISCARD');
24 silly fetchPackageMetaData else
24 silly fetchPackageMetaData span.innerHTML = PORTAL_IS.L10N.L10N_Obj.getStr("BUTTON.APPROVE");
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var reportLink = document.getElementById('UserCheck_Wrong_Category');
24 silly fetchPackageMetaData if(reportLink != null)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData var correctClass = window.oUserAction.getCorrectClass();
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData reportLink.setAttribute(correctClass, "usercheck_url_class");
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData reportLink.onclick = function(e) { window.oUserAction.sendReport(); }
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData //Clear the error message when switching language.
24 silly fetchPackageMetaData var errorElement = document.getElementById('usercheck_error_div');
24 silly fetchPackageMetaData if(errorElement != null)
24 silly fetchPackageMetaData errorElement.innerHTML = "&nbsp;";
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData //Keep TextArea default text to disallow it as input.
24 silly fetchPackageMetaData var textarea_element = null;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if(window.oUserAction.textareaExists(AdminMessage))
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData textarea_element = document.getElementById('UserCheck_Textual_Input');
24 silly fetchPackageMetaData //If the textarea is an incorrect element or length is correct, check passes.
24 silly fetchPackageMetaData if(textarea_element.value === undefined)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData //This element is not really our text area so we don't need it.
24 silly fetchPackageMetaData textarea_element = null;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if(textarea_element != null)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData window.oUserAction.textAreaText = textarea_element.value;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var correctClass = window.oUserAction.getCorrectClass();
24 silly fetchPackageMetaData textarea_element.setAttribute(correctClass, "usercheck_message_class usercheck_textual_input_class usercheck_textual_input_class_required");
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData textarea_element.onfocus = function() { window.oUserAction.clearRequiredInput(); };
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData //disable the approve button only on PortalMaindlp. on thin client approve button should always be enabled
24 silly fetchPackageMetaData if (window.oUserAction.incidentObject.RedirectToAddr != "" && window.isThinPortal != true)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData window.oUserActionCommon.DlpHttpLearning(AdminMessage,HTTPLearningEnabled);
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData // hiding the cancel button on infom on dlp only
24 silly fetchPackageMetaData window.oUserActionCommon.DlpHideCancelBtn(window.oUserAction.incidentObject.Action);
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData //Sends report for wrong category.
24 silly fetchPackageMetaData this.sendReport = function()
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData var Variables = window.oUserAction.incidentObject.Variables;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var resource = Variables['resource'] === undefined ? "" : Variables['resource'];
24 silly fetchPackageMetaData var hmac = Variables['resource_hmac'] === undefined ? "" : Variables['resource_hmac'];
24 silly fetchPackageMetaData var version = Variables['version'];
24 silly fetchPackageMetaData var product = Variables['product'];
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData //Get the application name. If this variable has been modified (added application icon for example), take the original.
24 silly fetchPackageMetaData var appname = Variables['application_name_orig'];
24 silly fetchPackageMetaData var malwareID = Variables['application_id'];
24 silly fetchPackageMetaData if(appname === undefined)
24 silly fetchPackageMetaData appname = Variables['application_name'];
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var base64UrlEncode = function(input) { return $.base64Encode(input).replace(/\+/g, '-').replace(/\//g, '_').replace(/\=/g, '') };
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData //Encode to base64 URL form spec.
24 silly fetchPackageMetaData appname = base64UrlEncode(appname);
24 silly fetchPackageMetaData resource = base64UrlEncode(resource);
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData //URL of the external URL
24 silly fetchPackageMetaData var url = window.location.protocol + "//cws.checkpoint.com/MISCAT/miscat/1.0?resource=" + resource + "&hmac=" + hmac + "&appname=" + appname + "&version=" + version + "&product=" + product + "&malwareID=" + malwareID;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData //Display a portal messge indicating the action was successful. On mobile devices we use the built-in message display.
24 silly fetchPackageMetaData if(window.browserDetails.isMobile())
24 silly fetchPackageMetaData alert(PORTAL_IS.L10N.L10N_Obj.getStr("REPORT_SUCCESS"));
24 silly fetchPackageMetaData else
24 silly fetchPackageMetaData showPortalMessage('<table><tr><td>' + draw_img_tag_span(getURL("images/confirmation.png")) + '&nbsp;&nbsp;</td><td>' + PORTAL_IS.L10N.L10N_Obj.getStr("REPORT_SUCCESS") + '</td></tr></table>', null, PORTAL_IS.MESSAGE_TYPE.Confirmation, true, false);
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var img = new Image();
24 silly fetchPackageMetaData img.src = url;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var reportLink = document.getElementById('UserCheck_Wrong_Category');
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var correctClass = window.oUserAction.getCorrectClass();
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData //Disable the link.
24 silly fetchPackageMetaData reportLink.setAttribute(correctClass, "usercheck_url_class usercheck_disabled_url_class");
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData //send log on wrong category
24 silly fetchPackageMetaData var cookie = getCookie('UserCheck_UserID');
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var requestData = {};
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData requestData.IID = "-1";
24 silly fetchPackageMetaData requestData.UserOption = "LOG-WRONG-CATEGORY";
24 silly fetchPackageMetaData requestData.UserID = cookie;
24 silly fetchPackageMetaData requestData.IsReasonExist = false;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData //Sometimes the cookie is not written correctly, so used global user.
24 silly fetchPackageMetaData if(requestData.UserID == null || requestData.UserID == "")
24 silly fetchPackageMetaData requestData.UserID = g_userID;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData requestData.IID = UserCheck.DataObj.IID;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var sAbsoluteURL = PORTAL_IS.TOOLS.getURL("data/GetUserCheckUserChoiceData");
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData sendAsynchronousRequest(sAbsoluteURL,
24 silly fetchPackageMetaData flattenObject(requestData),
24 silly fetchPackageMetaData this.handleUserReportWrongCategoryData,
24 silly fetchPackageMetaData this,
24 silly fetchPackageMetaData [new Callback()]);
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData //Nothing should happen on click from now on.
24 silly fetchPackageMetaData reportLink.onclick = function() { };
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData this.handleReportTimeout = function()
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData var elem = document.getElementById('testID');
24 silly fetchPackageMetaData document.getElementsByTagName('head')[0].removeChild(elem);
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData //Verifies the input of the user, including checkbox and textarea.
24 silly fetchPackageMetaData this.highlightInput = function()
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData var checkbox_element = null;
24 silly fetchPackageMetaData var textarea_element = null;
24 silly fetchPackageMetaData var checkbox_ready = false;
24 silly fetchPackageMetaData var textarea_ready = false;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var AdminMessage = window.oUserAction.incidentObject.Languages[window.oUserAction.incidentObject.SelectedLanguage].AdminMessage;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData //If the checkbox exists (and it is a correct element), its value will determine the button status.
24 silly fetchPackageMetaData if(window.oUserAction.incidentObject.IsCheckBoxEnforced == true && window.oUserAction.checkBoxExists(AdminMessage) == true && document.getElementById('UserCheck_Confirm_Checkbox').checked !== undefined)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData checkbox_element = document.getElementById('UserCheck_Confirm_Checkbox');
24 silly fetchPackageMetaData checkbox_ready = checkbox_element.checked;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else
24 silly fetchPackageMetaData checkbox_ready = true;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData //If the reason textbox exists and is enforced, its value will determine the button status.
24 silly fetchPackageMetaData if(window.oUserAction.incidentObject.IsReasonEnforced === true && window.oUserAction.textareaExists(AdminMessage))
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData textarea_element = document.getElementById('UserCheck_Textual_Input');
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData //If the textarea is an incorrect element or length is correct, check passes.
24 silly fetchPackageMetaData if(textarea_element.value === undefined)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData textarea_ready = true;
24 silly fetchPackageMetaData //This element is not really our text area so we don't need it.
24 silly fetchPackageMetaData textarea_element = null;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData if (textarea_element.value.length > 0 && textarea_element.value.length <= 400 && textarea_element.value != PORTAL_IS.L10N.L10N_Obj.getStr("ENTER_TEXT") && textarea_element.value != window.oUserAction.textAreaText)
24 silly fetchPackageMetaData textarea_ready = true;
24 silly fetchPackageMetaData else
24 silly fetchPackageMetaData textarea_ready = false;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else
24 silly fetchPackageMetaData textarea_ready = true;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var all_ready = checkbox_ready === true && textarea_ready === true;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var correctClass = window.oUserAction.getCorrectClass();
24 silly fetchPackageMetaData var elememt_to_scroll = null;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if(checkbox_element != null)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData checkbox_element.parentNode.parentNode.parentNode.parentNode.setAttribute(correctClass, (checkbox_ready ? "usercheck_red_no_highlight" : "usercheck_red_highlight" ));
24 silly fetchPackageMetaData elememt_to_scroll = checkbox_ready ? elememt_to_scroll : checkbox_element.parentNode.parentNode.parentNode.parentNode;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if(textarea_element != null)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData textarea_element.setAttribute(correctClass, "usercheck_message_class usercheck_textual_input_class " + (textarea_ready ? "usercheck_red_no_highlight" : "usercheck_red_highlight usercheck_textual_input_class_required" ));
24 silly fetchPackageMetaData elememt_to_scroll = textarea_ready ? elememt_to_scroll : textarea_element;
24 silly fetchPackageMetaData if(!textarea_ready)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData if(window.oUserAction.textAreaText === "" || textarea_element.value !== window.oUserAction.textAreaText)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData if(window.oUserAction.textAreaText != "")
24 silly fetchPackageMetaData textarea_element.value = window.oUserAction.textAreaText;
24 silly fetchPackageMetaData else
24 silly fetchPackageMetaData textarea_element.value = PORTAL_IS.L10N.L10N_Obj.getStr("ENTER_TEXT");
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData textarea_element.onfocus = function() { window.oUserAction.clearRequiredInput(); };
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if(!textarea_ready && !checkbox_ready && checkbox_element!=null && textarea_element!=null)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData if(checkbox_element.parentNode.parentNode.parentNode.parentNode.offsetTop > textarea_element.offsetTop)
24 silly fetchPackageMetaData elememt_to_scroll = checkbox_element;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if(elememt_to_scroll!=null){
24 silly fetchPackageMetaData elememt_to_scroll.scrollIntoView(false);
24 silly fetchPackageMetaData var scrollableDiv = document.getElementById("usercheck_scrollable_div");
24 silly fetchPackageMetaData if (scrollableDiv !== null)
24 silly fetchPackageMetaData scrollableDiv.scrollLeft = 0;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var errorElement = document.getElementById('usercheck_error_div');
24 silly fetchPackageMetaData if(errorElement != null)
24 silly fetchPackageMetaData errorElement.innerHTML = all_ready ? "" : "<br/><span style='color: #FF0000;'>* " + PORTAL_IS.L10N.L10N_Obj.getStr("REQUIRED_FIELDS") + "</span>";
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData return all_ready;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData this.clearRequiredInput = function()
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData textarea_element = document.getElementById('UserCheck_Textual_Input');
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData textarea_element.value = "";
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var correctClass = window.oUserAction.getCorrectClass();
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if(textarea_element.getAttribute(correctClass).indexOf("usercheck_red_highlight") !== -1)
24 silly fetchPackageMetaData textarea_element.setAttribute(correctClass, "usercheck_message_class usercheck_textual_input_class usercheck_red_highlight");
24 silly fetchPackageMetaData else
24 silly fetchPackageMetaData textarea_element.setAttribute(correctClass, "usercheck_message_class usercheck_textual_input_class");
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData textarea_element.onfocus = function() { };
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData this.sendMail = function()
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData DEBUG.out("UserAction::sendMail");
24 silly fetchPackageMetaData this.last_action = 'sent';
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if(!window.oUserAction.highlightInput())
24 silly fetchPackageMetaData //There was some user input missing - don't continue.
24 silly fetchPackageMetaData return;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var reason = "";
24 silly fetchPackageMetaData if(document.getElementById('UserCheck_Textual_Input') != null)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData reason = document.getElementById('UserCheck_Textual_Input').value;
24 silly fetchPackageMetaData //If the reason box is not found, there is nothing to enforce.
24 silly fetchPackageMetaData if(reason === undefined)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData reason = "";
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var sendMailCallback = new Callback();
24 silly fetchPackageMetaData sendMailCallback.methodReference = this.handleConfirmationData;
24 silly fetchPackageMetaData sendMailCallback.thisArgument = this;
24 silly fetchPackageMetaData sendMailCallback.args.push(new Callback());
24 silly fetchPackageMetaData PORTAL_IS.AJAX_MGR.sendAsyncReq( getURL("EmailSend"),
24 silly fetchPackageMetaData "mailId="+encodeURIComponent(UserCheck.DataObj.IID)+
24 silly fetchPackageMetaData "&justification="+encodeURIComponent(reason)+"&action=DLP-CHOICE-ACTION-SEND",
24 silly fetchPackageMetaData sendMailCallback,
24 silly fetchPackageMetaData null,
24 silly fetchPackageMetaData null,
24 silly fetchPackageMetaData "Sending email failed.");
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData this.discardMail = function()
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData DEBUG.out("UserAction::deleteMail");
24 silly fetchPackageMetaData this.last_action = 'delete';
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var sendMailCallback = new Callback();
24 silly fetchPackageMetaData sendMailCallback.methodReference = this.handleConfirmationData;
24 silly fetchPackageMetaData sendMailCallback.thisArgument = this;
24 silly fetchPackageMetaData sendMailCallback.args.push(new Callback());
24 silly fetchPackageMetaData PORTAL_IS.AJAX_MGR.sendAsyncReq( getURL("EmailSend"),
24 silly fetchPackageMetaData "mailId="+encodeURIComponent(UserCheck.DataObj.IID)+
24 silly fetchPackageMetaData "&justification="+encodeURIComponent("")+"&action=DLP-CHOICE-ACTION-DISCARD",
24 silly fetchPackageMetaData sendMailCallback,
24 silly fetchPackageMetaData null,
24 silly fetchPackageMetaData null,
24 silly fetchPackageMetaData "Sending email failed.");
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData this.handleConfirmationData = function(xhrStatus, xhrResponse, callback)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData DEBUG.out("UserAction::handleConfirmationData ");
24 silly fetchPackageMetaData if (callback == undefined)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData callback = new Callback();
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData if (xhrStatus != 200)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData // TODO: Handle error.
24 silly fetchPackageMetaData DEBUG.out('Retreiving Single Incident Review Data failed. ('+xhrStatus+')', DEBUG.ERROR);
24 silly fetchPackageMetaData callback.call();
24 silly fetchPackageMetaData return;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData var newViewJSONObj = JSON.parse(xhrResponse);
24 silly fetchPackageMetaData var message = newViewJSONObj.message;
24 silly fetchPackageMetaData var lastChanged = newViewJSONObj.lastChanged;
24 silly fetchPackageMetaData var succeeded = newViewJSONObj.succeeded;
24 silly fetchPackageMetaData if (lastChanged != -1 && lastChanged != 0)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData //message += " ";
24 silly fetchPackageMetaData //message += convertToGmt(lastChanged);
24 silly fetchPackageMetaData //this.emailData.date = convertToGmt(lastChanged);
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData //@@NA add test if this is from Thin Portal and only then redirect to about:blank
24 silly fetchPackageMetaData // window.location = "about:blank";
24 silly fetchPackageMetaData if (succeeded)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData var cookie = getCookie('UserCheck_UserID');
24 silly fetchPackageMetaData var requestData = {};
24 silly fetchPackageMetaData requestData.IID = "-1";
24 silly fetchPackageMetaData requestData.UserID = cookie;
24 silly fetchPackageMetaData requestData.IsReasonExist = true;
24 silly fetchPackageMetaData requestData.Reason = "";
24 silly fetchPackageMetaData requestData.UserOption = "SEND";
24 silly fetchPackageMetaData if (newViewJSONObj.action == "DLP-CHOICE-ACTION-DISCARD")
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData requestData.UserOption = "DISCARD";
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if (newViewJSONObj.action === undefined || newViewJSONObj.action != "DLP-CHOICE-ACTION-SEND")
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData requestData.IsReasonExist = false;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData if(document.getElementById('UserCheck_Textual_Input') != null)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData var reason = document.getElementById('UserCheck_Textual_Input').value;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData //If the reason box is not found, there is nothing to enforce.
24 silly fetchPackageMetaData if(reason === undefined)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData reason = "";
24 silly fetchPackageMetaData requestData.IsReasonExist = false;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else if(window.oUserAction.incidentObject.IsReasonEnforced === true && (reason.length == 0 || reason.length > 400))
24 silly fetchPackageMetaData return;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData requestData.Reason = reason;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData requestData.IsReasonExist = false;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData //Sometimes the cookie is not written correctly, so used global user.
24 silly fetchPackageMetaData if(requestData.UserID == null || requestData.UserID == "")
24 silly fetchPackageMetaData requestData.UserID = g_userID;
24 silly fetchPackageMetaData requestData.IID = UserCheck.DataObj.IID;
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var sAbsoluteURL = PORTAL_IS.TOOLS.getURL("data/GetUserCheckUserChoiceData");
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData sendAsynchronousRequest(sAbsoluteURL,
24 silly fetchPackageMetaData flattenObject(requestData),
24 silly fetchPackageMetaData this.handleUserCheckChoiceData,
24 silly fetchPackageMetaData this,
24 silly fetchPackageMetaData [new Callback()]);
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData this.goToBlank = function()
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData window.location = "about:blank";
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData this.ApproveHttp = function()
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData this.sendMail();
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData this.createScrubbingLinks = function(attachments, isExtended)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData var scrub_files_out = "<ul style=\"list-style-type: none;padding: 0;\">";
24 silly fetchPackageMetaData for (var i = 0;i<attachments.length;i++)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData if (attachments[i].fileStatus == "FILE-STATUS-APPROVED-BY-TE" || attachments[i].fileStatus == "FILE-STATUS-AVAILABLE" || attachments[i].fileStatus == "FILE-STATUS-AVAILABLE-SUSPICIOUS")
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData var image = "images/confirmation.png";
24 silly fetchPackageMetaData var comment = "";
24 silly fetchPackageMetaData var toolTip = "Click to download";
24 silly fetchPackageMetaData var removedParts = attachments[i].removedParts;
24 silly fetchPackageMetaData if (isExtended == true)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData if(removedParts != "")
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData removedParts = removedParts.replace(/\n/g,", ");
24 silly fetchPackageMetaData comment = " contains " + removedParts;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData comment = PORTAL_IS.L10N.L10N_Obj.getStr(attachments[i].scrubResult);
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData scrub_files_out += "<li title=\"" + toolTip + "\"><img src=\"" + image + "\" width=\"20\" height=\"20\"/>&nbsp;&nbsp;" + "<a href=\"ScrubGetFile?IID="+UserCheck.DataObj.IID+"&fileID="+attachments[i].fileId+"\" TARGET=\"_blank\"><span style=\"font-weight:bold\">" + attachments[i].fileName + "</span></a> <span style=\"color:Red;font-size:80%\">" + comment + "</span></li>"
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData var description = "";
24 silly fetchPackageMetaData var img = "";
24 silly fetchPackageMetaData var toolTip = "";
24 silly fetchPackageMetaData if (attachments[i].fileStatus == "FILE-STATUS-WAITING-FOR-TE")
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData g_refreshFiles = true;
24 silly fetchPackageMetaData description = "scanning...";
24 silly fetchPackageMetaData img = "img/loader.gif";
24 silly fetchPackageMetaData toolTip = "Please wait while file is being scanned";
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else if (attachments[i].fileStatus == "FILE-STATUS-BLOCKED-BY-TE")
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData description = "blocked - file is malicious";
24 silly fetchPackageMetaData img = "img/block.png";
24 silly fetchPackageMetaData toolTip = "File is malicious - blocked for download";
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else if (attachments[i].fileStatus == "FILE-STATUS-BLOCKED-BY-POLICY")
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData description = "blocked according to company policy";
24 silly fetchPackageMetaData img = "img/block.png";
24 silly fetchPackageMetaData toolTip = "File is blocked for download according to company policy";
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData scrub_files_out += "<li title=\"" + toolTip + "\"><img src=\"" + img + "\" width=\"20\" height=\"20\"/>&nbsp;&nbsp;" + attachments[i].fileName + " <span style=\"color:LightSteelBlue\">(" + description + ")</span></li>"
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData scrub_files_out += "</ul><div id=\"refresh_timer_div\"></div>";
24 silly fetchPackageMetaData return scrub_files_out;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData this.handleScrubbingFiles = function(xhrStatus, xhrResponse, callback)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData if (callback == undefined)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData callback = new Callback();
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if (xhrStatus != 200)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData DEBUG.out('Retreiving UserCheck Incident Data failed. ('+xhrStatus+')', DEBUG.ERROR);
24 silly fetchPackageMetaData callback.call();
24 silly fetchPackageMetaData return;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData this.scrubbingResponse = JSON.parse(xhrResponse);
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var attachments = [];
24 silly fetchPackageMetaData if( Object.prototype.toString.call( this.scrubbingResponse.data.attachments ) != '[object Array]' ) {
24 silly fetchPackageMetaData attachments[0] = this.scrubbingResponse.data.attachments;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData attachments = this.scrubbingResponse.data.attachments;
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData g_refreshFiles = false;
24 silly fetchPackageMetaData var scrub_links_simple = document.getElementById('links_simple');
24 silly fetchPackageMetaData if (scrub_links_simple != null)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData if (scrub_links_simple.hasChildNodes())
24 silly fetchPackageMetaData scrub_links_simple.removeChild(scrub_links_simple.childNodes[0]);
24 silly fetchPackageMetaData var tmp = document.createElement("div");
24 silly fetchPackageMetaData tmp.innerHTML = window.oUserAction.createScrubbingLinks(attachments, false);
24 silly fetchPackageMetaData scrub_links_simple.appendChild(tmp);
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var scrub_links_extended = document.getElementById('links_extended');
24 silly fetchPackageMetaData if (scrub_links_extended != null)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData if (scrub_links_extended.hasChildNodes())
24 silly fetchPackageMetaData scrub_links_extended.removeChild(scrub_links_extended.childNodes[0]);
24 silly fetchPackageMetaData var tmp = document.createElement("div");
24 silly fetchPackageMetaData tmp.innerHTML = window.oUserAction.createScrubbingLinks(attachments, true);
24 silly fetchPackageMetaData scrub_links_extended.appendChild(tmp);
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData var scrub_wait_massage = document.getElementById('scrub_wait_message');
24 silly fetchPackageMetaData if (scrub_wait_massage != null)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData scrub_wait_massage.style.display = 'none';
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if (g_refreshFiles)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData UserCheck.tools.oTimeoutManager.startTimeoutTimer(30, window.oUserAction.refreshScrubbingFiles);
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData callback.call();
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData this.refreshScrubbingFiles = function()
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData var requestData = {
24 silly fetchPackageMetaData IID: "-1"
24 silly fetchPackageMetaData };
24 silly fetchPackageMetaData requestData.IID = UserCheck.DataObj.IID;
24 silly fetchPackageMetaData var sAbsoluteURL = PORTAL_IS.TOOLS.getURL("data/GetScrubFiles");
24 silly fetchPackageMetaData sendAsynchronousRequest(sAbsoluteURL,
24 silly fetchPackageMetaData flattenObject(requestData),
24 silly fetchPackageMetaData window.oUserAction.handleScrubbingFiles,
24 silly fetchPackageMetaData this,
24 silly fetchPackageMetaData [new Callback()]);
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData this.showOrHideRemovedPartsfromFiles = function(FileIndex)
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData var infoimg_element = document.getElementById('infoimg_' + FileIndex);
24 silly fetchPackageMetaData var removed_parts_element = document.getElementById('removed_parts_' + FileIndex);
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData if ( infoimg_element != null && removed_parts_element != null )
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData if( removed_parts_element.style.display === "none" )
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData infoimg_element.style.display = 'none';
24 silly fetchPackageMetaData removed_parts_element.style.display = 'inline';
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData else
24 silly fetchPackageMetaData {
24 silly fetchPackageMetaData infoimg_element.style.display = "inline";
24 silly fetchPackageMetaData removed_parts_element.style.display = 'none';
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData }
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData } //END: window.UserAction = function()
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData window.oUserAction = new UserAction();
24 silly fetchPackageMetaData oUserAction.init();
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData </script>
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData </html>
24 silly fetchPackageMetaData
24 silly fetchPackageMetaData at Object.parse (native)
24 silly fetchPackageMetaData at CachingRegistryClient.<anonymous> (C:\Program Files\nodejs\node_modules\npm\node_modules\npm-registry-client\lib\request.js:237:23)
24 silly fetchPackageMetaData at Request._callback (C:\Program Files\nodejs\node_modules\npm\node_modules\npm-registry-client\lib\request.js:210:14)
24 silly fetchPackageMetaData at Request.self.callback (C:\Program Files\nodejs\node_modules\npm\node_modules\request\request.js:187:22)
24 silly fetchPackageMetaData at emitTwo (events.js:106:13)
24 silly fetchPackageMetaData at Request.emit (events.js:191:7)
24 silly fetchPackageMetaData at Request.<anonymous> (C:\Program Files\nodejs\node_modules\npm\node_modules\request\request.js:1048:10)
24 silly fetchPackageMetaData at emitOne (events.js:96:13)
24 silly fetchPackageMetaData at Request.emit (events.js:188:7)
24 silly fetchPackageMetaData at IncomingMessage.<anonymous> (C:\Program Files\nodejs\node_modules\npm\node_modules\request\request.js:969:12)
25 silly rollbackFailedOptional Starting
26 silly rollbackFailedOptional Finishing
27 silly runTopLevelLifecycles Finishing
28 silly install printInstalled
29 verbose stack SyntaxError: Unexpected token < in JSON at position 0
29 verbose stack <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
29 verbose stack
29 verbose stack <html>
29 verbose stack <head>
29 verbose stack <meta name="robots" content="noindex,nofollow" />
29 verbose stack <meta content="yes" name="apple-mobile-web-app-capable" />
29 verbose stack <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
29 verbose stack
29 verbose stack <link rel="icon" type="image/vnd.microsoft.icon" href="img/favicon.ico"/> <link rel="shortcut icon" type="image/vnd.microsoft.icon" href="img/favicon.ico"/>
29 verbose stack <link id="dynamicCSS" rel="stylesheet" type="text/css" href="/UserCheck/css/Blob_dynamic_css" />
29 verbose stack <link id="staticCSS" rel="stylesheet" type="text/css" href="/UserCheck/css/Blob_static.css" />
29 verbose stack
29 verbose stack
29 verbose stack <script type="text/javascript">
29 verbose stack //Create a dynamic element to allow sending of the document mode of IE.
29 verbose stack //This way we can notify PHP that it can display modern content instead of classic, despite the browser's reporting of being IE7.
29 verbose stack var headID = document.getElementsByTagName("head")[0];
29 verbose stack var cssNode = document.createElement('link');
29 verbose stack cssNode.type = 'text/css';
29 verbose stack cssNode.rel = 'stylesheet';
29 verbose stack cssNode.href = "/UserCheck/css/UserCheckCSS" + (document.documentMode !== undefined ? "?documentMode=" + document.documentMode : "");
29 verbose stack headID.appendChild(cssNode);
29 verbose stack
29 verbose stack
29 verbose stack /*
29 verbose stack ========================================================================================================================
29 verbose stack PORTAL IS - ESSENTIALS INCLUSION - START
29 verbose stack ________________________________________________________________________________________________________________________
29 verbose stack */
29 verbose stack // Set global PORTAL_IS namespace.
29 verbose stack window.PORTAL_IS = {};
29 verbose stack
29 verbose stack // Set namespace.
29 verbose stack PORTAL_IS.CONF = {};
29 verbose stack
29 verbose stack PORTAL_IS.CONF.AJAX_REQ_TIMEOUT = 15000;
29 verbose stack
29 verbose stack // These properties describes the external references of the portal.
29 verbose stack PORTAL_IS.CONF.MULTI_PORTALS = {};
29 verbose stack PORTAL_IS.CONF.MULTI_PORTALS.EXTERNAL_PATH = "";
29 verbose stack PORTAL_IS.CONF.MULTI_PORTALS.EXTERNAL_PORT = 443;
29 verbose stack PORTAL_IS.CONF.MULTI_PORTALS.EXTERNAL_HOST = "192.168.0.0";
29 verbose stack PORTAL_IS.CONF.MULTI_PORTALS.EXTERNAL_SCHEME = "https";
29 verbose stack PORTAL_IS.CONF.MULTI_PORTALS.XSRF_TOKEN = "";
29 verbose stack
29 verbose stack // The current web application name.
29 verbose stack PORTAL_IS.CONF.WEBAPP_NAME = "UserCheck";
29 verbose stack
29 verbose stack // Debug configurations
29 verbose stack PORTAL_IS.CONF.MAX_STACK_SIZE = 1000;
29 verbose stack PORTAL_IS.CONF.QUIET_MODE = "on".toLowerCase() == "on";
29 verbose stack PORTAL_IS.CONF.DEBUG_LEVEL = 0;
29 verbose stack
29 verbose stack
29 verbose stack // Set namespace.
29 verbose stack window.PORTAL_IS.L10N = {}
29 verbose stack
29 verbose stack // Localization object.
29 verbose stack //=============================================================================================
29 verbose stack function __L10N()
29 verbose stack {
29 verbose stack this.strings = new Array();
29 verbose stack this.browserLangs = new Array();
29 verbose stack
29 verbose stack this.init = function()
29 verbose stack {
29 verbose stack var obj = {"UC_TITLE":"Check Point UserCheck","UC_TITLE_MOBILE_DLP":"Check Point UserCheck Mobile DLP","BUTTON.OK":"OK","BUTTON.CANCEL":"Cancel","BUTTON.SEND":"Send","BUTTON.DISCARD":"Discard","BUTTON.APPROVE":"Approve","WRONG_ID":"This notification page has expired. You can safely close the page or ","TIMEOUT":"This notification page has expired. You can safely close the page or ","RETRY":"reload the original page.","REPORT_SUCCESS":"Report was sent successfully.","REPORT_ERROR":"An error occured while sending the report.","REQUIRED_FIELDS":"Required fields","ENTER_TEXT":"Enter text","RETURN_TO_SITE":"Return to site","UC.BLOCKED_IFRAME":"Learn more...","UC.INFO_IFRAME":"Click to resolve...","PLEASE_WAIT":"Please wait . . .","NO_SCRIPT":"This portal requires browser which support JavaScript.<br>Please make sure that you are using an updated browser and that JavaScript is enabled.","MSGBOX_TITLE_CONFIRMATION":"Confirmation","MSGBOX_TITLE_JUSTIFICATION":"Justification","MSGBOX_TITLE_APPROVER":"Approver","MSGBOX_TITLE_WARNING":"Warning","MSGBOX_TITLE_ATTENTION":"Attention","MSGBOX_TITLE_ERROR":"Error","MSGBOX_TITLE_REPORT_ERROR":"Report an error","MSGBOX_TITLE_EXTEND_EXPIRATION":"Extend expiration date","DEFAULT_GENERIC_CLIENT_ERROR":"An unexpected error has occurred.\nYou may still be able to continue working normally.\nPlease retry accessing the web page in a short while.\n\n","DEFAULT_GENERIC_TIMEOUT_CLIENT_ERROR":"You may not access this page, or this page has expired.\nPlease sign in.","LOG_REFERENCE_ID":"Log reference id: ","ERROR.LINK.SEND_ERROR_REPORT":"Send error report","ERROR.LINK.IM_HAVING_PROBLEMS":"I am having problems with this Portal.","CHECKPOINT_COPY_RIGHTS":"&copy;2011 Check Point Software Technologies Ltd.","EMAIL_SENT":"The email has been sent","EMAIL_DISCARDED":"The email has been discarded","EMAIL_ALREADY_SENT":"The email has already been sent","EMAIL_ALREADY_DISCARDED":"The email has already been discarded","UNKOWN_INCIDENT_STATUS":"The incident status is unkown","REVIEW_TEXT":"Review issue in portal","MAIL.ITEM.ATTACHMENTS":"Attachments","HTTP_LEARNING":"To complete the operation, <b>please return to site and resend the information<\/b>, thanks.","HTTP_LEARNING_ERROR_MSG":"Sending the message cannot be approved,<\/br> please contact your system administrator.","HTTP_LEARNING_ERROR_TOOLTIP":"Sending the message cannot be approved, please contact your system administrator.","CP_SCRUB_WAIT_MESSAGE":"Please wait while loading files...","CP_SCRUB_RESULT_SUCCESS":"","CP_SCRUB_RESULT_FAILURE":"File structure may be corrupted","CP_SCRUB_RESULT_TIMEOUT":"","CP_SCRUB_RESULT_UNSUPPORTED_FILE":"File format is not supported","CP_SCRUB_RESULT_NOT_SCRUBBED":"","CP_SCRUB_RESULT_INTERNAL_ERROR":"","CP_SCRUB_RESULT_NO_VALID_CONTRACT":"","CP_SCRUB_RESULT_SKIPPED_BY_TE_CONFIDENCE":"","CP_SCRUB_RESULT_OUT_OF_MEMORY":"","CP_SCRUB_RESULT_DOCSEC_FILE":"File encrypted using Checkpoint's Document Security","CP_SCRUB_RESULT_ENCRYPTED_FILE":"contains encrypted data","CP_SCRUB_RESULT_SKIPPED_BY_SCRIPT":"","CP_SCRUB_RESULT_DISK_LIMIT_REACHED":""};
29 verbose stack
29 verbose stack for(val in obj)
29 verbose stack this.strings[val] = obj[val];
29 verbose stack
29 verbose stack obj = ["en"];
29 verbose stack
29 verbose stack for(val in obj)
29 verbose stack {
29 verbose stack this.browserLangs[val] = obj[val].split(';')[0];
29 verbose stack }
29 verbose stack }
29 verbose stack
29 verbose stack this.getStr = function(stringId)
29 verbose stack {
29 verbose stack return this.strings[stringId];
29 verbose stack }
29 verbose stack
29 verbose stack this.selectLanguage = function(languageArray)
29 verbose stack {
29 verbose stack for(lang in this.browserLangs)
29 verbose stack {
29 verbose stack if(languageArray[this.browserLangs[lang]] === true)
29 verbose stack return this.browserLangs[lang];
29 verbose stack
29 verbose stack if(languageArray[this.browserLangs[lang].substring(0, 2)] === true)
29 verbose stack return this.browserLangs[lang].substring(0, 2);
29 verbose stack }
29 verbose stack
29 verbose stack //If nothing succeeded, return the default.
29 verbose stack return "en";
29 verbose stack }
29 verbose stack
29 verbose stack this.reloadLanguageTo = function(lang, fallbackLang, callback)
29 verbose stack {
29 verbose stack var requestData = {};
29 verbose stack
29 verbose stack requestData.lang = lang;
29 verbose stack requestData.fallbackLang = fallbackLang;
29 verbose stack
29 verbose stack var sAbsoluteURL = PORTAL_IS.TOOLS.getURL("data/GetTranslationData");
29 verbose stack
29 verbose stack sendAsynchronousRequest(sAbsoluteURL,
29 verbose stack flattenObject(requestData),
29 verbose stack this.asyncReloadLangHandler,
29 verbose stack this,
29 verbose stack [callback]);
29 verbose stack }
29 verbose stack
29 verbose stack this.asyncReloadLangHandler = function(xhrStatus, xhrResponse, callback)
29 verbose stack {
29 verbose stack if (xhrStatus != 200)
29 verbose stack {
29 verbose stack DEBUG.out('Retreiving translation data failed. ('+xhrStatus+')', DEBUG.ERROR);
29 verbose stack return;
29 verbose stack }
29 verbose stack
29 verbose stack var obj = JSON.parse(xhrResponse);
29 verbose stack this.strings = null; //Ensure removing of old values.
29 verbose stack this.strings = new Array();
29 verbose stack
29 verbose stack for(val in obj)
29 verbose stack this.strings[val] = obj[val];
29 verbose stack
29 verbose stack callback();
29 verbose stack }
29 verbose stack }
29 verbose stack //=============================================================================================
29 verbose stack
29 verbose stack //Localization object.
29 verbose stack L10N_Obj = new __L10N();
29 verbose stack L10N_Obj.init();
29 verbose stack PORTAL_IS.L10N.L10N_Obj = L10N_Obj;
29 verbose stack
29 verbose stack /*
29 verbose stack ________________________________________________________________________________________________________________________
29 verbose stack
29 verbose stack PORTAL IS - ESSENTIALS INCLUSION - END
29 verbose stack ========================================================================================================================
29 verbose stack */
29 verbose stack var noJSCrypto = "true";
29 verbose stack </script>
29 verbose stack <script type="text/javascript" src="js/Blob.js"></script>
29 verbose stack <script type="text/javascript">
29 verbose stack
29 verbose stack
29 verbose stack // Create namespace
29 verbose stack window.UserCheck = {};
29 verbose stack window.UserCheck.tools = {};
29 verbose stack
29 verbose stack // =======================================================================================
29 verbose stack function parseSender(value)
29 verbose stack {
29 verbose stack return value.address;
29 verbose stack }
29 verbose stack // =======================================================================================
29 verbose stack
29 verbose stack
29 verbose stack // =======================================================================================
29 verbose stack // Render recipient list from and array.
29 verbose stack // String[] recipientsArr - Array of recipients.
29 verbose stack // [int ellipsisLimit] - A string beyond this length will be cut and added ellipsis. Optional, default is 0 - no ellipsis.
29 verbose stack // [bool useLinebreakes] - Should a line break be added after each recipient. Optional, default is true.
29 verbose stack function recipientsArr2StrInTable(recipientsArr, ellipsisLimit, useLinebreakes)
29 verbose stack {
29 verbose stack if (ellipsisLimit == undefined)
29 verbose stack {
29 verbose stack ellipsisLimit = 0;
29 verbose stack }
29 verbose stack
29 verbose stack if (useLinebreakes == undefined)
29 verbose stack {
29 verbose stack useEllipsis = true;
29 verbose stack }
29 verbose stack
29 verbose stack var recipientsList = "";
29 verbose stack
29 verbose stack for (var i=0; i<recipientsArr.length; i++)
29 verbose stack {
29 verbose stack recipientsList += HTMLEncode(recipientsArr[i].address);
29 verbose stack if (i < recipientsArr.length-1)
29 verbose stack {
29 verbose stack recipientsList += ", ";
29 verbose stack if (useLinebreakes)
29 verbose stack {
29 verbose stack recipientsList += "<br>";
29 verbose stack }
29 verbose stack }
29 verbose stack }
29 verbose stack
29 verbose stack if (ellipsisLimit > 0)
29 verbose stack {
29 verbose stack //recipientsList = Ext.util.Format.ellipsis(recipientsList, ellipsisLimit);
29 verbose stack recipientsList = recipientsList;
29 verbose stack }
29 verbose stack
29 verbose stack return recipientsList;
29 verbose stack }
29 verbose stack // =======================================================================================
29 verbose stack
29 verbose stack
29 verbose stack // =======================================================================================
29 verbose stack // Render recipient list from and array.
29 verbose stack // Sender sender - The sender data.
29 verbose stack // [int ellipsisLimit] - A string beyond this length will be cut and added ellipsis. Optional, default is 0 - no ellipsis.
29 verbose stack // [bool useLinebreakes] - Should a line break be added after each recipient. Optional, default is true.
29 verbose stack function getSenderName(sender, ellipsisLimit)
29 verbose stack {
29 verbose stack var output = "";
29 verbose stack
29 verbose stack if (ellipsisLimit == undefined)
29 verbose stack {
29 verbose stack ellipsisLimit = 0;
29 verbose stack }
29 verbose stack
29 verbose stack if (sender.name.empty())
29 verbose stack {
29 verbose stack output = sender.address;
29 verbose stack }
29 verbose stack else
29 verbose stack {
29 verbose stack output = sender.name;
29 verbose stack }
29 verbose stack
29 verbose stack // if (ellipsisLimit > 0)
29 verbose stack // {
29 verbose stack // output = Ext.util.Format.ellipsis(output, ellipsisLimit);
29 verbose stack // }
29 verbose stack
29 verbose stack return output;
29 verbose stack }
29 verbose stack // =======================================================================================
29 verbose stack
29 verbose stack
29 verbose stack // =======================================================================================
29 verbose stack // Render recipient list from and array.
29 verbose stack // String sender - The subject string.
29 verbose stack // [int ellipsisLimit] - A string beyond this length will be cut and added ellipsis. Optional, default is 0 - no ellipsis.
29 verbose stack // [bool useLinebreakes] - Should a line break be added after each recipient. Optional, default is true.
29 verbose stack function getSubject(subject, ellipsisLimit)
29 verbose stack {
29 verbose stack var output = subject;
29 verbose stack
29 verbose stack if (ellipsisLimit == undefined)
29 verbose stack {
29 verbose stack ellipsisLimit = 0;
29 verbose stack }
29 verbose stack
29 verbose stack // if (ellipsisLimit > 0)
29 verbose stack // {
29 verbose stack // output = Ext.util.Format.ellipsis(output, ellipsisLimit);
29 verbose stack // }
29 verbose stack
29 verbose stack return output;
29 verbose stack }
29 verbose stack // =======================================================================================
29 verbose stack
29 verbose stack
29 verbose stack // =======================================================================================
29 verbose stack // tranform recipients array to string
29 verbose stack function recipientsArr2Str(recipientsArr,type)
29 verbose stack {
29 verbose stack var recipientsList = "";
29 verbose stack var address = "";
29 verbose stack var commaNeeded = false;
29 verbose stack for (var i=0; i<recipientsArr.length; i++)
29 verbose stack {
29 verbose stack if (type == recipientsArr[i].recipientType)
29 verbose stack {
29 verbose stack if (!commaNeeded)
29 verbose stack commaNeeded = true;
29 verbose stack else
29 verbose stack recipientsList += ", ";
29 verbose stack
29 verbose stack address = HTMLEncode(recipientsArr[i].address);
29 verbose stack if (recipientsArr[i].isExternal)
29 verbose stack {
29 verbose stack address = '<span ' + GetDomainColor(recipientsArr[i].address)+' >' + address + '</span>'
29 verbose stack }
29 verbose stack recipientsList += address;
29 verbose stack }
29 verbose stack }
29 verbose stack
29 verbose stack return recipientsList;
29 verbose stack }
29 verbose stack
29 verbose stack // =======================================================================================
29 verbose stack function arr2Str(arr)
29 verbose stack {
29 verbose stack var str = "";
29 verbose stack var commaNeeded = false;
29 verbose stack for (var i=0; i<arr.length; i++)
29 verbose stack {
29 verbose stack if (!commaNeeded)
29 verbose stack {
29 verbose stack commaNeeded = true;
29 verbose stack }
29 verbose stack else
29 verbose stack {
29 verbose stack str += ", ";
29 verbose stack }
29 verbose stack str += arr[i];
29 verbose stack }
29 verbose stack
29 verbose stack return str;
29 verbose stack }
29 verbose stack
29 verbose stack function GetDomainColor(str)
29 verbose stack {
29 verbose stack // var highlightColors = new Array("FFFF00","00FF00","00FFFF","FF00FF","FF0000","FFFF99","99FF99","CCFFFF","FFCCFF", "FF9999")
29 verbose stack var highlightColors = new Array("FFFF00","FF00FF","FF0000","FFBB00","FF9999");
29 verbose stack domainName = GetDomainName(str);
29 verbose stack if (domainName==null) return null;
29 verbose stack
29 verbose stack hash=0;
29 verbose stack for (i=0; i<domainName.length; i++)
29 verbose stack {
29 verbose stack hash += domainName.charCodeAt(i);
29 verbose stack }
29 verbose stack hash = hash % (highlightColors.length);
29 verbose stack return 'style="background-color: #' + highlightColors[hash] + '; text-decoration: underline;"';
29 verbose stack }
29 verbose stack
29 verbose stack /*
29 verbose stack // =======================================================================================
29 verbose stack UserCheck.tools.clearContainer = function(containerId)
29 verbose stack {
29 verbose stack DEBUG.out("Clear container: "+containerId);
29 verbose stack var container = Ext.getCmp(containerId);
29 verbose stack if ((container) && (container.items))
29 verbose stack {
29 verbose stack container.items.each(
29 verbose stack function(item)
29 verbose stack {
29 verbose stack container.remove(item, true);
29 verbose stack }
29 verbose stack );
29 verbose stack }
29 verbose stack }
29 verbose stack // =======================================================================================
29 verbose stack */
29 verbose stack
29 verbose stack // Override poral_is error handler.
29 verbose stack //=============================================================================================
29 verbose stack window.genericTimeoutHandler = function(portalException)
29 verbose stack {
29 verbose stack DEBUG.out("UserCheck::genericTimeoutHandler.");
29 verbose stack
29 verbose stack if ((portalException == undefined) || (portalException == null))
29 verbose stack {
29 verbose stack portalException = new PortalException();
29 verbose stack }
29 verbose stack
29 verbose stack // Assign action to the Ok button.
29 verbose stack // The event is added in order to get the exception, if it is set, that is set as the error message OK button attribute. see showPortalErrorMessage
29 verbose stack postErrorHandler = function(event)
29 verbose stack {
29 verbose stack // Check if redirected due to timeout.
29 verbose stack if (getCookie("isRedirectedDueTimeout") == "1")
29 verbose stack {
29 verbose stack // Delete the cookie to allow future errors.
29 verbose stack setCookie("isRedirectedDueTimeout", "0", 0);
29 verbose stack
29 verbose stack // TODO: Redirect to error page.
29 verbose stack return;
29 verbose stack }
29 verbose stack
29 verbose stack // Set cookie in order to prevent error loops.
29 verbose stack setCookie("isRedirectedDueTimeout", "1", 5*60);
29 verbose stack
29 verbose stack genericPostErrorHandler(event);
29 verbose stack
29 verbose stack // Reload the page.
29 verbose stack document.location.href=document.location.href;
29 verbose stack }
29 verbose stack
29 verbose stack // TODO: Get message from resource bundle.
29 verbose stack //var errMsg = "Your session has expired or timed out.\nYou will be redirected to the login page.\n\n";
29 verbose stack showPortalErrorMessage(portalException, postErrorHandler, true);
29 verbose stack }
29 verbose stack //=============================================================================================
29 verbose stack
29 verbose stack
29 verbose stack
29 verbose stack //=============================================================================================
29 verbose stack window.genericErrorHandler = function(portalException, callback)
29 verbose stack {
29 verbose stack DEBUG.out("UserCheck::genericErrorHandler.");
29 verbose stack if ((portalException == undefined) || (portalException == null))
29 verbose stack {
29 verbose stack portalException = new PortalException();
29 verbose stack }
29 verbose stack
29 verbose stack if (isNothingness(callback))
29 verbose stack {
29 verbose stack callback = new Callback();
29 verbose stack }
29 verbose stack
29 verbose stack // Assign action to the Ok button.
29 verbose stack // The event is added in order to get the exception, if it is set, that is set as the error message OK button attribute. see showPortalErrorMessage
29 verbose stack postErrorHandler = function(event)
29 verbose stack {
29 verbose stack genericPostErrorHandler(event);
29 verbose stack callback.call();
29 verbose stack // No reload of the page.
29 verbose stack }
29 verbose stack
29 verbose stack showPortalErrorMessage(portalException, postErrorHandler, true);
29 verbose stack return true; // This is required for the execption to stop from being passed to the browser.
29 verbose stack }
29 verbose stack //=============================================================================================
29 verbose stack
29 verbose stack
29 verbose stack
29 verbose stack //=============================================================================================
29 verbose stack window.genericPostErrorHandler = function(event)
29 verbose stack {
29 verbose stack DEBUG.out("UserCheck::genericPostErrorHandler.");
29 verbose stack // Just hide the error.
29 verbose stack hidePortalErrorMessage();
29 verbose stack }
29 verbose stack //=============================================================================================
29 verbose stack
29 verbose stack //=============================================================================================
29 verbose stack UserCheck.tools.sendErrorReport = function(userDesc, callback)
29 verbose stack {
29 verbose stack DEBUG.out("UserCheck.tools.sendErrorReport in.");
29 verbose stack
29 verbose stack var sAbsoluteURL = getURL("data/submitErrorReport");
29 verbose stack var report = encodeURIComponent(DEBUG.compileErrorReport());
29 verbose stack var userDesc = encodeURIComponent(userDesc);
29 verbose stack
29 verbose stack var sendErrorReportCallback = new Callback();
29 verbose stack sendErrorReportCallback.methodReference = UserCheck.tools.handleErrorReportResponse;
29 verbose stack sendErrorReportCallback.args.push(callback);
29 verbose stack
29 verbose stack // Send report with no error handlers.
29 verbose stack PORTAL_IS.AJAX_MGR.sendAsyncReq(sAbsoluteURL, "report="+report+"&userDesc="+userDesc, sendErrorReportCallback, null, null, "Sending of error report failed.");
29 verbose stack
29 verbose stack // Set error flag.
29 verbose stack PORTAL_IS.TOOLS.errorMsgShown = false;
29 verbose stack }
29 verbose stack //=============================================================================================
29 verbose stack
29 verbose stack //=============================================================================================
29 verbose stack UserCheck.tools.handleErrorReportResponse = function(xhrStatus, xhrResponse, callback)
29 verbose stack {
29 verbose stack DEBUG.out("UserCheck.tools.handleErrorReportResponse in.");
29 verbose stack
29 verbose stack // Set error flag.
29 verbose stack PORTAL_IS.TOOLS.errorMsgShown = false;
29 verbose stack
29 verbose stack if (isNothingness(callback))
29 verbose stack {
29 verbose stack callback = new Callback();
29 verbose stack }
29 verbose stack
29 verbose stack if (xhrStatus != 200)
29 verbose stack {
29 verbose stack // TODO: Handle error.
29 verbose stack DEBUG.out('Submitting error report failed. ('+xhrStatus+')', DEBUG.ERROR);
29 verbose stack callback.call();
29 verbose stack showPortalMessage("Sending of error report failed.");
29 verbose stack return;
29 verbose stack }
29 verbose stack
29 verbose stack callback.call();
29 verbose stack
29 verbose stack showPortalMessage("Error report was sent successfully.\nThank you for your support.", null, UserCheck.MESSAGE_TYPE.Confirmation);
29 verbose stack }
29 verbose stack //=============================================================================================
29 verbose stack
29 verbose stack //=============================================================================================
29 verbose stack UserCheck.tools.showErrorReport = function(callback)
29 verbose stack {
29 verbose stack DEBUG.out("UserCheck.tools.showErrorReport in.");
29 verbose stack
29 verbose stack // Create new callback with send report and store previous callback in it.
29 verbose stack submitCallback = new Callback();
29 verbose stack submitCallback.methodReference = DEBUG.sendErrorReport;
29 verbose stack submitCallback.args = [callback];
29 verbose stack
29 verbose stack // Create new callback for cancel.
29 verbose stack cancelCallback = new Callback();
29 verbose stack cancelCallback.methodReference = function()
29 verbose stack {
29 verbose stack // Clear error flag.
29 verbose stack PORTAL_IS.TOOLS.errorMsgShown = false;
29 verbose stack callback.call();
29 verbose stack };
29 verbose stack
29 verbose stack // Hide any opened boxes.
29 verbose stack PORTAL_IS.TOOLS.hideGeneralContainer();
29 verbose stack PORTAL_IS.TOOLS.hideDialog();
29 verbose stack hidePortalMessage();
29 verbose stack hidePortalErrorMessage();
29 verbose stack
29 verbose stack PORTAL_IS.TOOLS.showDialog( "Please describe the encountered problem in the text box below.",
29 verbose stack "NOTICE: The report might include personal information from your mail items.\nThe report will not include your credentials.",
29 verbose stack "I was trying to (e.g. review an email):\n\nWork flow which led to this error (e.g. access via email link):\n\nI am unable to:",
29 verbose stack "Report an error",
29 verbose stack submitCallback, cancelCallback, null, null, null, null, true);
29 verbose stack
29 verbose stack // Set error flag.
29 verbose stack PORTAL_IS.TOOLS.errorMsgShown = true;
29 verbose stack }
29 verbose stack //=============================================================================================
29 verbose stack
29 verbose stack
29 verbose stack //=============================================================================================
29 verbose stack
29 verbose stack
29 verbose stack //=============================================================================================
29 verbose stack
29 verbose stack DEBUG.showErrorReport = UserCheck.tools.showErrorReport;
29 verbose stack DEBUG.sendErrorReport = UserCheck.tools.sendErrorReport;
29 verbose stack
29 verbose stack UserCheck.tools.oTimeoutManager =
29 verbose stack {
29 verbose stack timerID: -1,
29 verbose stack startTimeoutTimer: function(duration, callback)
29 verbose stack {
29 verbose stack var milisecs = duration * 1000;
29 verbose stack if (milisecs > 2147483646)
29 verbose stack {
29 verbose stack
29 verbose stack milisecs = 2147483646;
29 verbose stack
29 verbose stack }
29 verbose stack DEBUG.out("UserCheck.tools.TimeoutManager: Starting timer for " + duration + " seconds.");
29 verbose stack window.TimeoutManagerCallback = callback;
29 verbose stack this.timerID = setTimeout("this.TimeoutManagerCallback();", milisecs);
29 verbose stack },
29 verbose stack stopTimeoutTimer: function()
29 verbose stack {
29 verbose stack clearTimeout(timerID);
29 verbose stack timerID = -1;
29 verbose stack }
29 verbose stack };
29 verbose stack
29 verbose stack UserCheck.DataObj = {};
29 verbose stack
29 verbose stack // TODO: This should be defined as an "interface" class and other view managers should implement it.
29 verbose stack
29 verbose stack // UC's view manager.
29 verbose stack window.UCViewManager = function()
29 verbose stack {
29 verbose stack this.lastRenderedCustomContentContainers = new Array();
29 verbose stack this.defaultContainer = 'portal_main_view';
29 verbose stack this.ignoreHashChange = false;
29 verbose stack this.wait = null;
29 verbose stack this.requestParams = null;
29 verbose stack
29 verbose stack // Hash to view mapping, enables us to set display another value than the actual view name.
29 verbose stack //==================================================================================================================
29 verbose stack this.hashViewMap = new Array();
29 verbose stack // Hash name View name
29 verbose stack //__________________________________________________________________________________________________________________
29 verbose stack this.hashViewMap["UserAction"] = "UserAction";
29 verbose stack this.hashViewMap["MainWithMenuView"] = "MainWithMenuView";
29 verbose stack this.hashViewMap["Menu"] = "Menu";
29 verbose stack this.hashViewMap["Logout"] = "Logout";
29 verbose stack this.hashViewMap["MainView"] = "MainView";
29 verbose stack this.hashViewMap["Error"] = "Error";
29 verbose stack
29 verbose stack // Get View name from Hash name.
29 verbose stack this.hash2View = function(hash)
29 verbose stack {
29 verbose stack var view = this.hashViewMap[hash];
29 verbose stack
29 verbose stack if (isNothingness(view))
29 verbose stack {
29 verbose stack view = "UserAction";
29 verbose stack }
29 verbose stack return view;
29 verbose stack }
29 verbose stack
29 verbose stack // Get Hash name from View name.
29 verbose stack this.view2Hash = function(view)
29 verbose stack {
29 verbose stack var hash = "UserAction";
29 verbose stack for (key in this.hashViewMap)
29 verbose stack {
29 verbose stack if (this.hashViewMap[key] == view)
29 verbose stack {
29 verbose stack var hash = key;
29 verbose stack }
29 verbose stack }
29 verbose stack return hash;
29 verbose stack }
29 verbose stack //==================================================================================================================
29 verbose stack
29 verbose stack // Initialize view manager.
29 verbose stack //=============================================================================================
29 verbose stack this.init = function()
29 verbose stack {
29 verbose stack DEBUG.out("UCViewManager::init");
29 verbose stack
29 verbose stack // Bind history change handler.
29 verbose stack $(window).bind('hashchange', viewManager.handleHistoryChange);
29 verbose stack
29 verbose stack // Check address bar's hash and set desired view if exists.
29 verbose stack var desiredView = this.parseHash().view;
29 verbose stack if (isNothingness(desiredView))
29 verbose stack {
29 verbose stack desiredView = "";
29 verbose stack }
29 verbose stack
29 verbose stack DEBUG.out("UCViewManager::init, desired view: [" + desiredView + "]");
29 verbose stack this.gotoNextView(desiredView);
29 verbose stack }
29 verbose stack //=============================================================================================
29 verbose stack
29 verbose stack
29 verbose stack
29 verbose stack // Handle history changes (back/reload).
29 verbose stack // Overriding default handling.
29 verbose stack //=============================================================================================
29 verbose stack this.handleHistoryChange = function(e, ui)
29 verbose stack {
29 verbose stack // In some cases the hash is changed and no view load is required, checking if so.
29 verbose stack if (!viewManager.ignoreHashChange && ui != undefined)
29 verbose stack {
29 verbose stack // Parse view from hash.
29 verbose stack var desiredView = viewManager.parseHash().view;
29 verbose stack DEBUG.out("UCViewManager::handleHistoryChange, desired view:" + desiredView);
29 verbose stack viewManager.gotoNextView(desiredView);
29 verbose stack }
29 verbose stack else
29 verbose stack {
29 verbose stack DEBUG.out("UCViewManager::handleHistoryChange, hash changed ignored.");
29 verbose stack }
29 verbose stack
29 verbose stack // Reset the ignore flag.
29 verbose stack viewManager.ignoreHashChange = false;
29 verbose stack }
29 verbose stack //=============================================================================================
29 verbose stack
29 verbose stack
29 verbose stack // Queries the server for next desired view and than call for rendering it.
29 verbose stack // Will call upon callback when done rendering the view.
29 verbose stack //=============================================================================================
29 verbose stack this.gotoNextView = function(requestedView, callback)
29 verbose stack {
29 verbose stack DEBUG.out("UCViewManager::gotoNextView");
29 verbose stack
29 verbose stack if (isNothingness(callback))
29 verbose stack {
29 verbose stack callback = new Callback();
29 verbose stack }
29 verbose stack
29 verbose stack // Check what is the next view.
29 verbose stack var sAbsoluteURL = PORTAL_IS.TOOLS.getURL("GetNextView");
29 verbose stack var parameters = (isNothingness(requestedView)) ? ("") : ("requestedView=" + encodeURIComponent(requestedView));
29 verbose stack
29 verbose stack var gotoNextViewCallback = new Callback();
29 verbose stack gotoNextViewCallback.methodReference = this.handleGotoNextViewRequest;
29 verbose stack gotoNextViewCallback.thisArgument = this;
29 verbose stack gotoNextViewCallback.args = [callback];
29 verbose stack
29 verbose stack PORTAL_IS.AJAX_MGR.sendAsyncReq(sAbsoluteURL, parameters, gotoNextViewCallback);
29 verbose stack }
29 verbose stack //=============================================================================================
29 verbose stack
29 verbose stack
29 verbose stack // Handle next view query.
29 verbose stack //=============================================================================================
29 verbose stack this.handleGotoNextViewRequest = function(xhrStatus, xhrResponse, callback)
29 verbose stack {
29 verbose stack DEBUG.out("UCViewManager::handleGotoNextViewRequest");
29 verbose stack
29 verbose stack if (isNothingness(callback))
29 verbose stack {
29 verbose stack callback = new Callback();
29 verbose stack }
29 verbose stack
29 verbose stack if (xhrStatus != 200)
29 verbose stack {
29 verbose stack DEBUG.out('Retreiving next view failed. ('+xhrStatus+')', DEBUG.ERROR);
29 verbose stack callback.call();
29 verbose stack return;
29 verbose stack }
29 verbose stack
29 verbose stack var nextViewJSONObj = JSON.parse(xhrResponse);
29 verbose stack var nextView = nextViewJSONObj.view;
29 verbose stack DEBUG.out("UCViewManager::handleGotoNextViewRequest, next view:" + nextView);
29 verbose stack
29 verbose stack // Extract the data (request params) from hash and relay it onto next hash.
29 verbose stack // As hash changing handler will be passed back to this method we set the Ignore flag to TRUE
29 verbose stack // and call for the gotoView method.
29 verbose stack viewManager.changeHash(nextView, viewManager.parseHash().data, true);
29 verbose stack
29 verbose stack viewManager.gotoView(nextView, callback);
29 verbose stack }
29 verbose stack //=============================================================================================
29 verbose stack
29 verbose stack
29 verbose stack // Get view contents (CSS, JS and HTML).
29 verbose stack // Will call upon callback when done rendering the view.
29 verbose stack //=============================================================================================
29 verbose stack this.gotoView = function(view, callback)
29 verbose stack {
29 verbose stack DEBUG.out("UCViewManager::gotoView view: ["+view+"]");
29 verbose stack
29 verbose stack if (callback == undefined)
29 verbose stack {
29 verbose stack callback = new Callback();
29 verbose stack }
29 verbose stack
29 verbose stack var hash = this.parseHash().view;
29 verbose stack var parameters = (hash == "") ? ("view="+encodeURIComponent(hash)) : ( "requestedView=" + encodeURIComponent(view) + "&view="+encodeURIComponent(hash) );
29 verbose stack
29 verbose stack sendAsynchronousRequest(PORTAL_IS.TOOLS.getURL("viewManager/GetViewData"),
29 verbose stack parameters,
29 verbose stack this.handleNewView,
29 verbose stack this,
29 verbose stack [callback]);
29 verbose stack }
29 verbose stack //=============================================================================================
29 verbose stack
29 verbose stack
29 verbose stack // Handle new view rendering.
29 verbose stack //=============================================================================================
29 verbose stack this.handleNewView = function(xhrStatus, xhrResponse, callback)
29 verbose stack {
29 verbose stack if (callback == undefined)
29 verbose stack {
29 verbose stack callback = new Callback();
29 verbose stack }
29 verbose stack
29 verbose stack if (xhrStatus != 200)
29 verbose stack {
29 verbose stack // TODO: Handle error.
29 verbose stack DEBUG.out('Retreiving view failed. ('+xhrStatus+')', DEBUG.ERROR);
29 verbose stack callback.call();
29 verbose stack return;
29 verbose stack }
29 verbose stack
29 verbose stack var newViewJSONObj = JSON.parse(xhrResponse);
29 verbose stack var newView = newViewJSONObj.view;
29 verbose stack DEBUG.out("UCViewManager::handleNewView, Parsed from JSON - view:" + newView);
29 verbose stack
29 verbose stack
29 verbose stack var useDefaultContainerId = true;
29 verbose stack var requiredContainerId = "";
29 verbose stack var requiredView = "";
29 verbose stack var requireSecureConnection = false;
29 verbose stack
29 verbose stack switch (newView)
29 verbose stack {
29 verbose stack default: // View will be rendered into main page view.
29 verbose stack useDefaultContainerId = true;
29 verbose stack requiredContainerId = this.defaultContainer;
29 verbose stack break;
29 verbose stack }
29 verbose stack
29 verbose stack // Check if in https, redirect if not.
29 verbose stack if ((requireSecureConnection) && (location.protocol.toLowerCase() == 'http:'))
29 verbose stack {
29 verbose stack newLocation = location.href.replace(/http:/i, "https:");
29 verbose stack location.href = newLocation;
29 verbose stack return;
29 verbose stack }
29 verbose stack
29 verbose stack var containerId = this.defaultContainer;
29 verbose stack if (!useDefaultContainerId)
29 verbose stack {
29 verbose stack containerId = requiredContainerId;
29 verbose stack }
29 verbose stack
29 verbose stack //var container = Ext.getCmp(containerId);
29 verbose stack var container = document.getElementById(containerId);
29 verbose stack
29 verbose stack if (container != undefined)
29 verbose stack {
29 verbose stack
29 verbose stack DEBUG.out('Render new view ('+newViewJSONObj.view+') into [' + (useDefaultContainerId ? "DefaultContainer" : requiredContainerId) + "].");
29 verbose stack
29 verbose stack // Render CSS. - Not needed, all CSS loads from one blob file.
29 verbose stack //evaluateCSS(newViewJSONObj.css, "");
29 verbose stack
29 verbose stack // Clear existing content.
29 verbose stack container.innerHTML = "";
29 verbose stack
29 verbose stack // If the html content is not empty, render it into a new pane.
29 verbose stack container.innerHTML = newViewJSONObj.html;
29 verbose stack
29 verbose stack // Render JavaScript Content.
29 verbose stack evaluateJavaScript(newViewJSONObj.javascript);
29 verbose stack
29 verbose stack }
29 verbose stack else if (requiredContainerId == this.defaultContainer)
29 verbose stack {
29 verbose stack
29 verbose stack DEBUG.out('Default view is missing and will be rendered...');
29 verbose stack this.renderDefaultView();
29 verbose stack this.handleNewView(xhrStatus, xhrResponse, callback);
29 verbose stack
29 verbose stack }
29 verbose stack else // The container is not present and needs to be rendered first.
29 verbose stack {
29 verbose stack
29 verbose stack DEBUG.out('Required view ('+requiredContainerId+') is missing and needs to be rendered first.');
29 verbose stack
29 verbose stack // Set the previous view results in a callback, it will be called when finished rendering of the login sequence page.
29 verbose stack var requiredViewCallback = new Callback();
29 verbose stack requiredViewCallback.methodReference = this.handleNewView;
29 verbose stack requiredViewCallback.thisArgument = this;
29 verbose stack requiredViewCallback.args = [200, xhrResponse]; // Set fake status and response.
29 verbose stack
29 verbose stack // Request specific view.
29 verbose stack this.gotoView(requiredView, requiredViewCallback);
29 verbose stack
29 verbose stack }
29 verbose stack
29 verbose stack // TODO: detect loops.
29 verbose stack
29 verbose stack
29 verbose stack // Done here, call the callback.
29 verbose stack //this.wait.hide();
29 verbose stack callback.call();
29 verbose stack }
29 verbose stack //=============================================================================================
29 verbose stack
29 verbose stack
29 verbose stack
29 verbose stack
29 verbose stack
29 verbose stack
29 verbose stack // CUSTOM CONTENT RELATED METHODS
29 verbose stack // _________________________________________________________________________________________________________________
29 verbose stack
29 verbose stack // Get the view's custom Content.
29 verbose stack //=============================================================================================
29 verbose stack this.getViewCustomContent = function(view)
29 verbose stack {
29 verbose stack this.clearLastCustomContent();
29 verbose stack
29 verbose stack var sAbsoluteURL = PORTAL_IS.TOOLS.getURL("JSONViewData/GetViewCustomContent");
29 verbose stack sendAsynchronousRequest(sAbsoluteURL,
29 verbose stack "view="+view,
29 verbose stack this.renderCustomContent,
29 verbose stack this,
29 verbose stack []);
29 verbose stack }
29 verbose stack //=============================================================================================
29 verbose stack
29 verbose stack
29 verbose stack // Render the custom content.
29 verbose stack //=============================================================================================
29 verbose stack this.renderCustomContent = function(xhrStatus, xhrResponse, callbackObj)
29 verbose stack {
29 verbose stack DEBUG.out('Render custom content.');
29 verbose stack callback = new Callback(callbackObj);
29 verbose stack
29 verbose stack if (xhrStatus != 200)
29 verbose stack {
29 verbose stack // TODO: Handle error.
29 verbose stack DEBUG.out('Retreiving custom content failed. ('+xhrStatus+')', DEBUG.ERROR);
29 verbose stack callback.call();
29 verbose stack return;
29 verbose stack }
29 verbose stack
29 verbose stack // The container Id is: "CustomContent_<VIEW NAME>_<RESOURCE KEY>".
29 verbose stack // For example: the "ISW" view and the resource key of "top" will be rendered into "CustomContent_ISW_top".
29 verbose stack
29 verbose stack var newCustomContentJSONObj = JSON.parse(xhrResponse);
29 verbose stack var keyArr = newCustomContentJSONObj.keyArr;
29 verbose stack var view = newCustomContentJSONObj.view
29 verbose stack
29 verbose stack // Override view.
29 verbose stack switch (view)
29 verbose stack {
29 verbose stack case "ICS": // No brake, group these views.
29 verbose stack case "Authentication":
29 verbose stack case "ISW":
29 verbose stack case "MultiChallenge":
29 verbose stack case "IswEntry":
29 verbose stack var usedView = "LoginSequencePage";
29 verbose stack break;
29 verbose stack
29 verbose stack default:
29 verbose stack var usedView = view;
29 verbose stack break;
29 verbose stack }
29 verbose stack
29 verbose stack // Iterate on each of the custom content object.
29 verbose stack var customContent, containerId, key;
29 verbose stack //for (var key in keyMap)
29 verbose stack for (var i=0; i<keyArr.length; i++)
29 verbose stack {
29 verbose stack key = keyArr[i][0];
29 verbose stack customContent = keyArr[i][1];
29 verbose stack containerId = "CustomContent_"+usedView+"_"+key;
29 verbose stack DEBUG.out('Render custom content: usedView:['+usedView+"] into:["+containerId+"]");
29 verbose stack this.evaluateCustomContent(customContent, containerId);
29 verbose stack this.lastRenderedCustomContentContainers.push(containerId);
29 verbose stack }
29 verbose stack
29 verbose stack // Call the callback.
29 verbose stack callback.call();
29 verbose stack }
29 verbose stack
29 verbose stack // Encapsulate conditional rendering of the custom content.
29 verbose stack this.evaluateCustomContent = function(customContent, containerId)
29 verbose stack {
29 verbose stack destinationRef = document.getElementById(containerId);
29 verbose stack if ( (destinationRef != null) && (destinationRef != undefined) )
29 verbose stack {
29 verbose stack evaluateHTMLContent(customContent, destinationRef);
29 verbose stack }
29 verbose stack }
29 verbose stack //=============================================================================================
29 verbose stack
29 verbose stack
29 verbose stack // Clear last rendered containers.
29 verbose stack //=============================================================================================
29 verbose stack this.clearLastCustomContent = function()
29 verbose stack {
29 verbose stack for (var containerIndex in this.lastRenderedCustomContentContainers)
29 verbose stack {
29 verbose stack this.evaluateCustomContent("&nbsp;", this.lastRenderedCustomContentContainers[containerIndex]);
29 verbose stack }
29 verbose stack
29 verbose stack this.lastRenderedCustomContentContainers = new Array();
29 verbose stack }
29 verbose stack //=============================================================================================
29 verbose stack
29 verbose stack // Render default view.
29 verbose stack //=============================================================================================
29 verbose stack this.renderDefaultView = function()
29 verbose stack {}
29 verbose stack //==================================================================================================================
29 verbose stack
29 verbose stack //==================================================================================================================
29 verbose stack this.logoutButtonHandler = function()
29 verbose stack {}
29 verbose stack //==================================================================================================================
29 verbose stack
29 verbose stack
29 verbose stack
29 verbose stack
29 verbose stack
29 verbose stack // DEPRECATED METHODS
29 verbose stack // _________________________________________________________________________________________________________________
29 verbose stack
29 verbose stack // DEPRECATED, use viewManager.gotoNextView instead.
29 verbose stack //==================================================================================================================
29 verbose stack this.gotoNextState = function(callback)
29 verbose stack {
29 verbose stack this.gotoNextView(null, callback);
29 verbose stack return;
29 verbose stack }
29 verbose stack //==================================================================================================================
29 verbose stack }
29 verbose stack
29 verbose stack // Extend ViewManager (Portal IS).
29 verbose stack UCViewManager.prototype = new ViewManager();
29 verbose stack window.viewManager = new UCViewManager();
29 verbose stack
29 verbose stack </script>
29 verbose stack
29 verbose stack <title>Check Point UserCheck</title>
29 verbose stack </head>
29 verbose stack
29 verbose stack <body class="usercheck_body_background_class" unselectable="on">
29 verbose stack <noscript>
29 verbose stack This portal requires browser which support JavaScript.<br>Please make sure that you are using an updated browser and that JavaScript is enabled. </noscript>
29 verbose stack <div id='portalErrorMessage' class="portalErrorMessageDivHide">
29 verbose stack
29 verbose stack <table cellpadding="0px" cellspacing="0px" class="portalErrorMessageTableContainer" width="100%">
29 verbose stack <tr>
29 verbose stack <td align="center">
29 verbose stack
29 verbose stack <table cellpadding="0px" cellspacing="0px" class="portalErrorMessageTable">
29 verbose stack
29 verbose stack <tr id="portalErrorMessage_title_container_row" class="portalMessage_title show" width="100%">
29 verbose stack <td id="portalErrorMessage_title_container" height="10px" valign="middle" align="left" colspan="2">&nbsp;</td>
29 verbose stack </tr>
29 verbose stack
29 verbose stack <tr>
29 verbose stack <td id="portalErrorMessage_container" align="left" style="padding: 10px;" colspan="2">&nbsp;</td>
29 verbose stack </tr>
29 verbose stack
29 verbose stack <tr>
29 verbose stack
29 verbose stack <td>
29 verbose stack <table cellpadding="0px" cellspacing="0px" width="100%"style=" padding: 10px;">
29 verbose stack <tr>
29 verbose stack <td id="portalMessage_error_report_container" align="left" valign="buttom" class="hide">
29 verbose stack <span id="portalMessage_error_report_link" onclick="DEBUG.showErrorReport();" class="portal_link" style="left: 10px;">
29 verbose stack Send error report </span>
29 verbose stack </td>
29 verbose stack <td id="portalMessage_error_button_container" align="right" height="10px;" valign="buttom">
29 verbose stack <button id="portalErrorMessage_button" class="portalErrorMessage_button" onclick="hidePortalErrorMessage();">
29 verbose stack OK </button>
29 verbose stack </td>
29 verbose stack </tr>
29 verbose stack </table>
29 verbose stack </td>
29 verbose stack
29 verbose stack </tr>
29 verbose stack
29 verbose stack </table>
29 verbose stack
29 verbose stack </td>
29 verbose stack </tr>
29 verbose stack </table>
29 verbose stack
29 verbose stack </div>
29 verbose stack
29 verbose stack
29 verbose stack <div id='portalMessage' class="portalMessageDivHide">
29 verbose stack
29 verbose stack <table cellpadding="0px" cellspacing="0px" class="portalMessageTableContainer" width="100%">
29 verbose stack <tr>
29 verbose stack <td align="center">
29 verbose stack
29 verbose stack <table cellpadding="0px" cellspacing="0px" class="portalMessageTable">
29 verbose stack
29 verbose stack <tr id="portalMessage_title_container_row" class="portalMessage_title show">
29 verbose stack <td id="portalMessage_title_container" class="portalMessage_title_td" valign="middle" align="left">
29 verbose stack &nbsp;
29 verbose stack </td>
29 verbose stack </tr>
29 verbose stack
29 verbose stack <tr>
29 verbose stack <td id="portalMessage_container" align="left" style="padding: 10px;">
29 verbose stack &nbsp;
29 verbose stack </td>
29 verbose stack </tr>
29 verbose stack
29 verbose stack <tr id="portalMessage_textarea_container_row" class="hide">
29 verbose stack <td id="portalMessage_textarea_container" align="left" style="padding: 10px;">
29 verbose stack </td>
29 verbose stack </tr>
29 verbose stack
29 verbose stack <tr id="portalMessage_validation_message_container_row" class="show">
29 verbose stack <td id="portalMessage_validation_message_container" align="left" class="portalMessage_validation_submessage" style="padding: 10px;">
29 verbose stack &nbsp;
29 verbose stack </td>
29 verbose stack </tr>
29 verbose stack
29 verbose stack <tr id="portalMessage_submessage_container_row" class="hide">
29 verbose stack <td id="portalMessage_submessage_container" align="left" class="portalMessage_submessage" style="padding: 10px;">
29 verbose stack &nbsp;
29 verbose stack </td>
29 verbose stack </tr>
29 verbose stack
29 verbose stack <tr>
29 verbose stack <td align="center" height="10px;" valign="buttom" style="padding: 10px;" colspan="2">
29 verbose stack <div id="portalMessage_ok_button_container" class="show" style="text-align: right;">
29 verbose stack <button id="portalMessage_button" class="portalMessage_button" onclick="hidePortalMessage();">
29 verbose stack OK </button>
29 verbose stack </div>
29 verbose stack
29 verbose stack <div id="portalMessage_bool_button_container" class="hide">
29 verbose stack <button id="portalMessage_yes_button" class="portalMessage_button" onclick="hidePortalMessage();">
29 verbose stack BUTTON.YES </button>
29 verbose stack &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
29 verbose stack <button id="portalMessage_no_button" class="portalMessage_button" onclick="hidePortalMessage();">
29 verbose stack BUTTON.NO </button>
29 verbose stack </div>
29 verbose stack
29 verbose stack <div id="portalMessage_submit_button_container" class="hide">
29 verbose stack <button id="portalMessage_submit_button" class="portalMessage_button" onclick="hidePortalMessage();">
29 verbose stack BUTTON.SUBMIT </button>
29 verbose stack &nbsp;&nbsp;&nbsp;
29 verbose stack <button id="portalMessage_cancel_button" class="portalMessage_button" onclick="hidePortalMessage();">
29 verbose stack Cancel </button>
29 verbose stack </div>
29 verbose stack </td>
29 verbose stack </tr>
29 verbose stack </table>
29 verbose stack
29 verbose stack </td>
29 verbose stack </tr>
29 verbose stack </table>
29 verbose stack
29 verbose stack </div>
29 verbose stack
29 verbose stack
29 verbose stack <div id='portalGeneralContainer' class="portalMessageDivHide">
29 verbose stack
29 verbose stack <table cellpadding="0px" cellspacing="0px" class="portalMessageTableContainer" width="100%">
29 verbose stack <tr>
29 verbose stack <td align="center">
29 verbose stack
29 verbose stack <table cellpadding="0px" cellspacing="0px" class="portalMessageTable">
29 verbose stack
29 verbose stack <tr id="portalGeneralContainer_title_container_row" class="portalMessage_title show" width="100%">
29 verbose stack <td id="portalGeneralContainer_title_container" height="10px" valign="middle" align="left">
29 verbose stack &nbsp;
29 verbose stack </td>
29 verbose stack </tr>
29 verbose stack
29 verbose stack <tr>
29 verbose stack <td id="portalGeneralContainer_container" align="left" style="padding: 10px;">
29 verbose stack &nbsp;
29 verbose stack </td>
29 verbose stack </tr>
29 verbose stack
29 verbose stack </table>
29 verbose stack
29 verbose stack </td>
29 verbose stack </tr>
29 verbose stack </table>
29 verbose stack
29 verbose stack </div>
29 verbose stack
29 verbose stack
29 verbose stack <div id='PortalErrorScreenShader' class="screenShaderHide">
29 verbose stack <table cellpadding="0px" cellspacing="0px" width="100%" height="100%">
29 verbose stack <tr>
29 verbose stack <td>&nbsp;</td>
29 verbose stack </tr>
29 verbose stack </table>
29 verbose stack </div>
29 verbose stack
29 verbose stack
29 verbose stack
29 verbose stack <div id='PortalScreenShader' class="screenShaderHide">
29 verbose stack <table cellpadding="0px" cellspacing="0px" width="100%" height="100%">
29 verbose stack <tr>
29 verbose stack <td>&nbsp;</td>
29 verbose stack </tr>
29 verbose stack </table>
29 verbose stack </div>
29 verbose stack
29 verbose stack
29 verbose stack <div id="portal_main_view" class="div_expanded" unselectable="on">
29 verbose stack <table height="100%" width="100%" border="0" cellpadding="0" cellspacing="0" class="">
29 verbose stack <tr>
29 verbose stack <td id="portal_center_div" valign="top" unselectable="on" class="usercheck_main_background_class">
29 verbose stack <div id="portal_top_pane_div" class="usercheck_header_class">
29 verbose stack
29 verbose stack <!--position: fixed; bottom: -1px; left: 50%; margin-left: -435px; -->
29 verbose stack
29 verbose stack <table width="100%" cellpadding="0" cellspacing="0" class="usercheck_header_table_class usercheck_content_table_class">
29 verbose stack <tr>
29 verbose stack <td class="usercheck_header_left_class" unselectable="on">
29 verbose stack </td>
29 verbose stack <td class="usercheck_header_center_class" unselectable="on">
29 verbose stack <div class="usercheck_page_title_class" id="usercheck_page_title" unselectable="on" >UserCheck</div>
29 verbose stack </td>
29 verbose stack <td id="usercheck_header_right_logo" class="usercheck_header_right_class" unselectable="on">
29 verbose stack <img class="usercheck_company_logo_class" id="usercheck_company_logo" ></img>
29 verbose stack </td>
29 verbose stack <td id="usercheck_header_right_empty" class="usercheck_header_right_empty_class" unselectable="on">
29 verbose stack </td>
29 verbose stack </tr>
29 verbose stack </table>
29 verbose stack </div>
29 verbose stack <div style="">&nbsp;</div><div style="">&nbsp;</div><div style="">&nbsp;</div>
29 verbose stack <div style="text-align: center;" unselectable="on">
29 verbose stack <table id="usercheck_content_table" cellpadding="0" cellspacing="0" class="usercheck_content_table_class">
29 verbose stack <tr>
29 verbose stack <td rowspan="3" valign="top" class="usercheck_message_icon_column"><div class="usercheck_message_icon_class" id="usercheck_img_div" unselectable="on">&nbsp;</div></td>
29 verbose stack <td><div id="usercheck_title_div" class="usercheck_title_class" unselectable="on">&nbsp;</div></td>
29 verbose stack </tr>
29 verbose stack <tr>
29 verbose stack <td><div id="usercheck_main_div" class="usercheck_message_class" unselectable="on">&nbsp;</div></td>
29 verbose stack </tr>
29 verbose stack <tr>
29 verbose stack <td><div id="usercheck_error_div" unselectable="on">&nbsp;</div></td>
29 verbose stack </tr>
29 verbose stack <tr>
29 verbose stack <td colspan="2" style="text-align: center;" unselectable="on">
29 verbose stack <table style="margin-right: -10px; width: 50%; float: right;"><tr><td>
29 verbose stack <center>
29 verbose stack <div id="usercheck_cancel_div" class="usercheck_ok_button_div_class">&nbsp;</div>
29 verbose stack </center>
29 verbose stack </td><td>
29 verbose stack <center>
29 verbose stack <div id="usercheck_ok_div" class="usercheck_ok_button_div_class">&nbsp;</div>
29 verbose stack </center>
29 verbose stack </td></tr></table>
29 verbose stack </td>
29 verbose stack </tr>
29 verbose stack </table></div>
29 verbose stack </td>
29 verbose stack </tr>
29 verbose stack <tr>
29 verbose stack <td id ="usercheck_footer_td" class="usercheck_footer_class usercheck_footer_height_class">
29 verbose stack <div id="portal_bottom_pane_div">
29 verbose stack
29 verbose stack <!--position: fixed; bottom: -1px; left: 50%; margin-left: -435px; -->
29 verbose stack
29 verbose stack <table id="footer_table_logo" cellpadding="0" cellspacing="0" class="usercheck_footer_table_class footer_no_logo">
29 verbose stack <tr>
29 verbose stack <td class="usercheck_footer_height_class">
29 verbose stack <div id="usercheck_language_selection_div" class="usercheck_lang_select_div_class" style="display: none;">
29 verbose stack Language: <select id="usercheck_language_selection" class="usercheck_lang_select_class" onchange="javascript:window.oUserAction.handleLanguageChange();">
29 verbose stack </select>
29 verbose stack </div>
29 verbose stack </td>
29 verbose stack </tr>
29 verbose stack </table> </div>
29 verbose stack </td>
29 verbose stack </tr>
29 verbose stack </table>
29 verbose stack </div>
29 verbose stack </body>
29 verbose stack
29 verbose stack
29 verbose stack <script type="text/javascript">
29 verbose stack
29 verbose stack //Continue the background image on IE6-7 graphics design.
29 verbose stack if(window.browserDetails.browserType == window.BrowserType.IE && window.browserDetails.browserVersion <= 7 && (document.documentMode === undefined || document.documentMode <= 7))
29 verbose stack {
29 verbose stack var footer_td = document.getElementById('usercheck_footer_td');
29 verbose stack footer_td.setAttribute("className", footer_td.getAttribute("className") + " usercheck_main_background_class");
29 verbose stack }
29 verbose stack
29 verbose stack UserCheck.DataObj.IID = "6562BAB3-CB54-35B8-C19D-29D4AE36E696";
29 verbose stack
29 verbose stack UserCheck.DataObj.frame = 0;
29 verbose stack
29 verbose stack
29 verbose stack /*this is a common object for PortalMain and PortalMainDlp. functions here should be empty */
29 verbose stack window.UserActionCommon = function()
29 verbose stack {
29 verbose stack this.DlpHttpLearning = function(adminMessage,HttpLearningEnabled)
29 verbose stack {
29 verbose stack
29 verbose stack }
29 verbose stack this.DlpHideCancelBtn = function(action)
29 verbose stack {
29 verbose stack
29 verbose stack }
29 verbose stack }
29 verbose stack
29 verbose stack window.oUserActionCommon = new window.UserActionCommon();
29 verbose stack
29 verbose stack
29 verbose stack var g_userID = "";
29 verbose stack var g_refreshFiles = false;
29 verbose stack
29 verbose stack window.UserAction = function()
29 verbose stack {
29 verbose stack this.incidentObject = {};
29 verbose stack this.textAreaText = "";
29 verbose stack
29 verbose stack this.getCorrectClass = function()
29 verbose stack {
29 verbose stack var correctClass = "class";
29 verbose stack
29 verbose stack //Choose the correct class attribute name (in IE6-7 we need "className" instead of "class") according to IE version - but check for compatibility first!
29 verbose stack if(window.browserDetails.browserType == window.BrowserType.IE && window.browserDetails.browserVersion <= 7 && document.documentMode === undefined)
29 verbose stack {
29 verbose stack correctClass = "className";
29 verbose stack }
29 verbose stack
29 verbose stack return correctClass;
29 verbose stack }
29 verbose stack
29 verbose stack // Initialize.
29 verbose stack //=============================================================================================
29 verbose stack this.init = function(cancelPage)
29 verbose stack {
29 verbose stack if (typeof cancelPage == 'undefined')
29 verbose stack {
29 verbose stack cancelPage = false;
29 verbose stack }
29 verbose stack var requestData = {
29 verbose stack IID: "-1",
29 verbose stack UserID: "",
29 verbose stack IsThinPortal: false,
29 verbose stack UserLang: "",
29 verbose stack GetCancelPage: cancelPage
29 verbose stack };
29 verbose stack
29 verbose stack requestData.IID = UserCheck.DataObj.IID;
29 verbose stack
29 verbose stack var cookie = getCookie('UserCheck_UserID');
29 verbose stack requestData.UserID = cookie != null ? cookie : "";
29 verbose stack
29 verbose stack requestData.IsThinPortal = window.isThinPortal === true ? true : false;
29 verbose stack
29 verbose stack var selectedLanguage = getCookie('UserCheck_Selected_Language');
29 verbose stack if(selectedLanguage == null)
29 verbose stack {
29 verbose stack selectedLanguage = "";
29 verbose stack }
29 verbose stack requestData.UserLang = selectedLanguage;
29 verbose stack
29 verbose stack var sAbsoluteURL = PORTAL_IS.TOOLS.getURL("data/GetUserCheckIncidentData");
29 verbose stack
29 verbose stack if (window.isThinPortal === true)
29 verbose stack {
29 verbose stack //Create a custom timeout handler for the thin portal.
29 verbose stack PORTAL_IS.AJAX_MGR.customTimeoutHandler = function()
29 verbose stack {
29 verbose stack window.location = "about:blank";
29 verbose stack }
29 verbose stack }
29 verbose stack
29 verbose stack sendAsynchronousRequest(sAbsoluteURL,
29 verbose stack flattenObject(requestData),
29 verbose stack this.handleUserCheckIncidentData,
29 verbose stack this,
29 verbose stack [new Callback()]);
29 verbose stack }
29 verbose stack
29 verbose stack //Toggles the button's state from enabled to disabled and vice versa.
29 verbose stack this.setButtonMode = function(buttonState, buttonID)
29 verbose stack {
29 verbose stack var button = document.getElementById(buttonID);
29 verbose stack if(button == null)
29 verbose stack return;
29 verbose stack
29 verbose stack var correctClass = window.oUserAction.getCorrectClass();
29 verbose stack
29 verbose stack if(buttonState)
29 verbose stack {
29 verbose stack //Enable the button.
29 verbose stack button.setAttribute(correctClass, "button");
29 verbose stack button.onclick = function(){ javascript:oUserAction.submitOK(); };
29 verbose stack
29 verbose stack button.style.cursor = "pointer";
29 verbose stack }
29 verbose stack else
29 verbose stack {
29 verbose stack //Disable the button.
29 verbose stack button.setAttribute(correctClass, "button buttonDisabled");
29 verbose stack button.onclick = null;
29 verbose stack
29 verbose stack button.style.cursor = "default";
29 verbose stack }
29 verbose stack }
29 verbose stack
29 verbose stack //Changes the button CSS class (support for IE6-8). buttonCLS is for additional classes to be added to the button.
29 verbose stack this.setButtonState = function(state, buttonID, buttonCLS)
29 verbose stack {
29 verbose stack if (!buttonID)
29 verbose stack {
29 verbose stack buttonID = 'UserCheck_OK_Button';
29 verbose stack buttonCLS = '';
29 verbose stack }
29 verbose stack
29 verbose stack var correctClass = window.oUserAction.getCorrectClass();
29 verbose stack
29 verbose stack var button = document.getElementById(buttonID);
29 verbose stack
29 verbose stack if(button.getAttribute(correctClass).indexOf("Disabled") == -1)
29 verbose stack {
29 verbose stack //The button is not disabled.
29 verbose stack button.setAttribute(correctClass, "button button" + state + " " + buttonCLS);
29 verbose stack }
29 verbose stack }
29 verbose stack
29 verbose stack this.handleUserCheckIncidentData = function(xhrStatus, xhrResponse, callback)
29 verbose stack {
29 verbose stack DEBUG.out("UserAction::handleUserCheckIncidentData");
29 verbose stack
29 verbose stack if (callback == undefined)
29 verbose stack {
29 verbose stack callback = new Callback();
29 verbose stack }
29 verbose stack
29 verbose stack if (xhrStatus != 200)
29 verbose stack {
29 verbose stack DEBUG.out('Retreiving UserCheck Incident Data failed. ('+xhrStatus+')', DEBUG.ERROR);
29 verbose stack callback.call();
29 verbose stack return;
29 verbose stack }
29 verbose stack
29 verbose stack this.incidentObject = JSON.parse(xhrResponse);
29 verbose stack var Languages = this.incidentObject.Languages;
29 verbose stack var UserCheckLogoID = this.incidentObject.UserCheckLogoID;
29 verbose stack var RedirectToAddr = this.incidentObject.RedirectToAddr;
29 verbose stack var AutoRedirect = this.incidentObject.AutoRedirect;
29 verbose stack var ExternalSystemURL = this.incidentObject.ExternalSystemURL;
29 verbose stack var Action = this.incidentObject.Action;
29 verbose stack var Variables = this.incidentObject.Variables;
29 verbose stack
29 verbose stack this.incidentObject.HasBeenCancelled = false;
29 verbose stack
29 verbose stack setCookie('UserCheck_UserID', this.incidentObject.UserID, 31556926);
29 verbose stack
29 verbose stack if (Variables['product'] != 'Threat Extraction')
29 verbose stack {
29 verbose stack if(AutoRedirect == true && RedirectToAddr != "")
29 verbose stack {
29 verbose stack if (window.isThinPortal === undefined)
29 verbose stack {
29 verbose stack //We have an address and auto redirect is true so redirect to that URL.
29 verbose stack // if (RedirectToAddr.indexOf('http://') != 0)
29 verbose stack if ((RedirectToAddr.indexOf('http://') != 0) &&(RedirectToAddr.indexOf('https://') != 0))
29 verbose stack RedirectToAddr = "http://" + RedirectToAddr;
29 verbose stack
29 verbose stack window.location = RedirectToAddr;
29 verbose stack }
29 verbose stack else
29 verbose stack window.location = "about:blank"; //No reason to redirect in the Thin Portal
29 verbose stack }
29 verbose stack }
29 verbose stack else
29 verbose stack {
29 verbose stack if (Action == "SCRUB-SUCCESS")
29 verbose stack {
29 verbose stack // in scrub success page, if not mobile or thin, give more space for the list of original files names and info
29 verbose stack if(window.browserDetails.isMobile() === false && window.isThinPortal === undefined)
29 verbose stack {
29 verbose stack var content_table = document.getElementById("usercheck_content_table");
29 verbose stack if (content_table != null)
29 verbose stack {
29 verbose stack content_table.style.tableLayout="auto";
29 verbose stack }
29 verbose stack
29 verbose stack var message_div = document.getElementById("usercheck_main_div");
29 verbose stack if (message_div != null)
29 verbose stack {
29 verbose stack message_div.style.minWidth="auto";
29 verbose stack message_div.style.maxWidth="700px";
29 verbose stack message_div.style.whiteSpace="nowrap";
29 verbose stack message_div.style.wordWrap="normal";
29 verbose stack message_div.style.overflow="auto";
29 verbose stack }
29 verbose stack }
29 verbose stack
29 verbose stack var requestData = {
29 verbose stack IID: "-1"
29 verbose stack };
29 verbose stack requestData.IID = UserCheck.DataObj.IID;
29 verbose stack var sAbsoluteURL = PORTAL_IS.TOOLS.getURL("data/GetScrubFiles");
29 verbose stack sendAsynchronousRequest(sAbsoluteURL,
29 verbose stack flattenObject(requestData),
29 verbose stack this.handleScrubbingFiles,
29 verbose stack this,
29 verbose stack [new Callback()]);
29 verbose stack }
29 verbose stack }
29 verbose stack
29 verbose stack if(ExternalSystemURL != "")
29 verbose stack //We have an external system address so redirect to that URL.
29 verbose stack // window.location = ExternalSystemURL + (this.incidentObject.ForwardParams == true ? "?IncidentID=" + UserCheck.DataObj.IID + "&UserID=" + this.incidentObject.UserID : "");
29 verbose stack if (this.incidentObject.ForwardParams == true)
29 verbose stack {
29 verbose stack window.location = ExternalSystemURL + "?IncidentID=" + UserCheck.DataObj.IID + "&UserID=" + this.incidentObject.UserID;
29 verbose stack }
29 verbose stack else
29 verbose stack {
29 verbose stack window.location = ExternalSystemURL;
29 verbose stack }
29 verbose stack
29 verbose stack
29 verbose stack
29 verbose stack this.prepareLanguageSelection();
29 verbose stack
29 verbose stack if(window.self !== window.top)
29 verbose stack {
29 verbose stack //We are inside a frame. Display small version of the portal and give link to a full version of the portal in new tab/window.
29 verbose stack
29 verbose stack var url = '<a href="' + window.location + "&frame=1" + '" target="_blank">';
29 verbose stack if (Action == "SCRUB-SUCCESS")
29 verbose stack {
29 verbose stack Action = "INFORM";
29 verbose stack }
29 verbose stack url += draw_img_tag(getURL("img/" + Action.toLowerCase() + ".png")) + '&nbsp;&nbsp;';
29 verbose stack url += Action == 'BLOCK' ? PORTAL_IS.L10N.L10N_Obj.getStr("UC.BLOCKED_IFRAME") : PORTAL_IS.L10N.L10N_Obj.getStr("UC.INFO_IFRAME");
29 verbose stack url += '</a>';
29 verbose stack
29 verbose stack document.body.innerHTML = url;
29 verbose stack document.body.style.backgroundImage = 'none';
29 verbose stack document.body.style.textAlign = 'center';
29 verbose stack document.body.style.verticalAlign = 'text-bottom';
29 verbose stack }
29 verbose stack
29 verbose stack //Decide which footer to display according to the action type (for Block and Limit we display footer without CP logo).
29 verbose stack if(window.isThinPortal === true)
29 verbose stack {
29 verbose stack var thin_table = document.getElementById('usercheck_thin_table');
29 verbose stack if(thin_table != null && Action != 'BLOCK' && Action != 'LIMIT')
29 verbose stack {
29 verbose stack var correctClass = window.oUserAction.getCorrectClass();
29 verbose stack
29 verbose stack thin_table.setAttribute(correctClass, "usercheck_main_mobile_background_class with_logo");
29 verbose stack }
29 verbose stack }
29 verbose stack else
29 verbose stack {
29 verbose stack var logo_footer = document.getElementById('footer_table_logo');
29 verbose stack if(logo_footer != null && Action != 'BLOCK' && Action != 'LIMIT')
29 verbose stack {
29 verbose stack var correctClass = window.oUserAction.getCorrectClass();
29 verbose stack
29 verbose stack logo_footer.setAttribute(correctClass, "usercheck_footer_table_class footer_logo");
29 verbose stack }
29 verbose stack }
29 verbose stack
29 verbose stack g_userID = this.incidentObject.UserID;
29 verbose stack
29 verbose stack if (Action == "SCRUB-SUCCESS")
29 verbose stack {
29 verbose stack Action = "INFORM";
29 verbose stack }
29 verbose stack //Draw incident image according to the incident type
29 verbose stack if(document.getElementById('usercheck_img_div') !== null)
29 verbose stack document.getElementById('usercheck_img_div').innerHTML = draw_img_tag(getURL("img/" + Action.toLowerCase() + ".png"));
29 verbose stack
29 verbose stack if(this.incidentObject.IsLogoConfigured)
29 verbose stack {
29 verbose stack //The page has a logo defined in the GUI - load it.
29 verbose stack
29 verbose stack //Desktop header.
29 verbose stack var header_right_logo = document.getElementById('usercheck_header_right_logo');
29 verbose stack if(header_right_logo != null)
29 verbose stack if(window.browserDetails.browserType == window.BrowserType.IE && window.browserDetails.browserVersion <= 7)
29 verbose stack header_right_logo.style.display = "block";
29 verbose stack else
29 verbose stack header_right_logo.style.display = "table-cell";
29 verbose stack
29 verbose stack var header_right_empty = document.getElementById('usercheck_header_right_empty');
29 verbose stack if(header_right_empty != null)
29 verbose stack header_right_empty.style.display = "none";
29 verbose stack
29 verbose stack //Mobile header.
29 verbose stack var mobile_header = document.getElementById('header_mobile_div');
29 verbose stack if(mobile_header != null)
29 verbose stack {
29 verbose stack mobile_header.style.display = "block";
29 verbose stack }
29 verbose stack
29 verbose stack //Company logo.
29 verbose stack var company_logo = document.getElementById('usercheck_company_logo');
29 verbose stack if(company_logo != null)
29 verbose stack company_logo.src = getURL("images/interactions/" + UserCheckLogoID + ".png");
29 verbose stack }
29 verbose stack else if(window.isThinPortal === true)
29 verbose stack {
29 verbose stack //If there is no logo defined, display the default logo in the thin portal.
29 verbose stack var company_logo = document.getElementById('usercheck_company_logo');
29 verbose stack if(company_logo != null)
29 verbose stack company_logo.src = getURL("img/cp_logo_mobile_thin.png");
29 verbose stack }
29 verbose stack
29 verbose stack //Start the timeout manager.
29 verbose stack UserCheck.tools.oTimeoutManager.startTimeoutTimer(this.incidentObject.Expiration - 15, this.handleTimeout);
29 verbose stack
29 verbose stack if (UserCheck.DataObj.GetSingleIncidentReview !== undefined && UserCheck.DataObj.GetSingleIncidentReview == 1)
29 verbose stack {
29 verbose stack window.singleIncident = new SingleIncident();
29 verbose stack singleIncident.init();
29 verbose stack }
29 verbose stack
29 verbose stack callback.call();
29 verbose stack }
29 verbose stack
29 verbose stack this.submitOK = function()
29 verbose stack {
29 verbose stack //This function determines if it is OK to proceed with sending a response if all validation criteria are met.
29 verbose stack
29 verbose stack //If we are in a Block action in thin portal, just redirect to about:blank.
29 verbose stack if (window.isThinPortal === true && window.oUserAction.incidentObject.Action === "BLOCK")
29 verbose stack {
29 verbose stack window.location = "about:blank";
29 verbose stack }
29 verbose stack
29 verbose stack if(document.getElementById('UserCheck_Textual_Input') != null)
29 verbose stack //Verify we have the real textarea!
29 verbose stack if(document.getElementById('UserCheck_Textual_Input').value !== undefined)
29 verbose stack //Unfocus the text-area.
29 verbose stack document.getElementById('UserCheck_Textual_Input').blur();
29 verbose stack
29 verbose stack if(!window.oUserAction.highlightInput())
29 verbose stack //There was some user input missing - don't continue.
29 verbose stack return;
29 verbose stack
29 verbose stack var cookie = getCookie('UserCheck_UserID');
29 verbose stack
29 verbose stack var requestData = {};
29 verbose stack
29 verbose stack requestData.IID = "-1";
29 verbose stack requestData.UserOption = "OK";
29 verbose stack
29 verbose stack requestData.UserID = cookie;
29 verbose stack requestData.IsReasonExist = true;
29 verbose stack if(document.getElementById('UserCheck_Textual_Input') != null)
29 verbose stack {
29 verbose stack var reason = document.getElementById('UserCheck_Textual_Input').value;
29 verbose stack
29 verbose stack //If the reason box is not found, there is nothing to enforce.
29 verbose stack if(reason === undefined)
29 verbose stack {
29 verbose stack reason = "";
29 verbose stack requestData.IsReasonExist = false;
29 verbose stack }
29 verbose stack else if(window.oUserAction.incidentObject.IsReasonEnforced === true && (reason.length == 0 || reason.length > 400))
29 verbose stack return;
29 verbose stack
29 verbose stack requestData.Reason = reason;
29 verbose stack }
29 verbose stack else
29 verbose stack {
29 verbose stack requestData.IsReasonExist = false;
29 verbose stack }
29 verbose stack
29 verbose stack //Sometimes the cookie is not written correctly, so used global user.
29 verbose stack if(requestData.UserID == null || requestData.UserID == "")
29 verbose stack requestData.UserID = g_userID;
29 verbose stack
29 verbose stack requestData.IID = UserCheck.DataObj.IID;
29 verbose stack
29 verbose stack var sAbsoluteURL = PORTAL_IS.TOOLS.getURL("data/GetUserCheckUserChoiceData");
29 verbose stack
29 verbose stack sendAsynchronousRequest(sAbsoluteURL,
29 verbose stack flattenObject(requestData),
29 verbose stack this.handleUserCheckChoiceData,
29 verbose stack this,
29 verbose stack [new Callback()]);
29 verbose stack }
29 verbose stack
29 verbose stack this.submitCancel = function()
29 verbose stack {
29 verbose stack if(window.oUserAction.incidentObject.CancelURL !== undefined && window.oUserAction.incidentObject.CancelURL !== "")
29 verbose stack {
29 verbose stack window.location = window.oUserAction.incidentObject.CancelURL;
29 verbose stack return;
29 verbose stack }
29 verbose stack else
29 verbose stack {
29 verbose stack if (window.isThinPortal == true)
29 verbose stack {
29 verbose stack window.location = "about:blank";
29 verbose stack return;
29 verbose stack }
29 verbose stack this.init(true);
29 verbose stack }
29 verbose stack }
29 verbose stack
29 verbose stack this.handleUserCheckChoiceData = function(xhrStatus, xhrResponse, callback)
29 verbose stack {
29 verbose stack try
29 verbose stack {
29 verbose stack window.external.OKButtonClickedResponseReceived('Done handling request');
29 verbose stack }
29 verbose stack catch(err)
29 verbose stack {
29 verbose stack //do nothing, this is probably the fat client
29 verbose stack }
29 verbose stack
29 verbose stack DEBUG.out("UserAction::handleUserCheckChoiceData");
29 verbose stack
29 verbose stack if (callback == undefined)
29 verbose stack {
29 verbose stack callback = new Callback();
29 verbose stack }
29 verbose stack
29 verbose stack if (xhrStatus != 200)
29 verbose stack {
29 verbose stack DEBUG.out('Retreiving UserCheck Incident Data failed. ('+xhrStatus+')', DEBUG.ERROR);
29 verbose stack callback.call();
29 verbose stack return;
29 verbose stack }
29 verbose stack
29 verbose stack var newViewJSONObj = JSON.parse(xhrResponse);
29 verbose stack
29 verbose stack var RedirectToAddr = newViewJSONObj.RedirectToAddr;
29 verbose stack if (window.oUserAction.incidentObject.Variables['product'] != 'Threat Extraction')
29 verbose stack {
29 verbose stack if(RedirectToAddr != "")
29 verbose stack {
29 verbose stack var frame = "0";
29 verbose stack
29 verbose stack frame = UserCheck.DataObj.frame;
29 verbose stack
29 verbose stack if(typeof frame === "undefined" || frame == "0" || frame == "")
29 verbose stack {
29 verbose stack if (window.isThinPortal === undefined)
29 verbose stack {
29 verbose stack //We have an address so redirect to that URL.
29 verbose stack if ((RedirectToAddr.indexOf('http://') != 0) &&(RedirectToAddr.indexOf('https://') != 0))
29 verbose stack RedirectToAddr = "http://" + RedirectToAddr;
29 verbose stack window.location = RedirectToAddr;
29 verbose stack }
29 verbose stack else
29 verbose stack window.location = "about:blank";
29 verbose stack }
29 verbose stack else
29 verbose stack {
29 verbose stack if (window.isThinPortal === undefined)
29 verbose stack {
29 verbose stack //We have an address so redirect to that URL in the parent frame.
29 verbose stack if ((RedirectToAddr.indexOf('http://') != 0) &&(RedirectToAddr.indexOf('https://') != 0))
29 verbose stack RedirectToAddr = "http://" + RedirectToAddr;
29 verbose stack
29 verbose stack window.opener.location = RedirectToAddr;
29 verbose stack }
29 verbose stack else
29 verbose stack {
29 verbose stack window.opener.location = "about:blank";
29 verbose stack }
29 verbose stack window.close();
29 verbose stack }
29 verbose stack }
29 verbose stack else
29 verbose stack {
29 verbose stack var frame = "0";
29 verbose stack frame = UserCheck.DataObj.frame;
29 verbose stack if(typeof frame === "undefined" || frame == "0" || frame == "")
29 verbose stack {
29 verbose stack if (window.isThinPortal == true)
29 verbose stack {
29 verbose stack window.location = "about:blank";
29 verbose stack }
29 verbose stack }
29 verbose stack else
29 verbose stack {
29 verbose stack if (window.isThinPortal == true)
29 verbose stack {
29 verbose stack window.opener.location = "about:blank";
29 verbose stack }
29 verbose stack window.close();
29 verbose stack }
29 verbose stack }
29 verbose stack }
29 verbose stack else
29 verbose stack {
29 verbose stack window.location.reload();
29 verbose stack }
29 verbose stack }
29 verbose stack this.handleUserReportWrongCategoryData = function(xhrStatus, xhrResponse, callback)
29 verbose stack {
29 verbose stack
29 verbose stack DEBUG.out("UserAction::handleUserLogData");
29 verbose stack
29 verbose stack
29 verbose stack
29 verbose stack
29 verbose stack }
29 verbose stack
29 verbose stack this.handleTimeout = function()
29 verbose stack {
29 verbose stack var requestData = {
29 verbose stack IID: "-1"
29 verbose stack };
29 verbose stack
29 verbose stack requestData.IID = UserCheck.DataObj.IID;
29 verbose stack
29 verbose stack var sAbsoluteURL = PORTAL_IS.TOOLS.getURL("ExtendTimeout");
29 verbose stack
29 verbose stack sendAsynchronousRequest(sAbsoluteURL,
29 verbose stack flattenObject(requestData),
29 verbose stack window.oUserAction.handleTimeoutExtension,
29 verbose stack this,
29 verbose stack [new Callback()]);
29 verbose stack }
29 verbose stack
29 verbose stack this.handleTimeoutExtension = function(xhrStatus, xhrResponse, callback)
29 verbose stack {
29 verbose stack DEBUG.out("UserAction::handleTimeoutExtension");
29 verbose stack
29 verbose stack if (callback == undefined)
29 verbose stack {
29 verbose stack callback = new Callback();
29 verbose stack }
29 verbose stack
29 verbose stack if (xhrStatus != 200)
29 verbose stack {
29 verbose stack if (window.isThinPortal === undefined)
29 verbose stack {
29 verbose stack DEBUG.out('Retreiving UserCheck Timeout Extension data failed. ('+xhrStatus+')', DEBUG.ERROR);
29 verbose stack callback.call();
29 verbose stack return;
29 verbose stack }
29 verbose stack else
29 verbose stack {
29 verbose stack window.location = "about:blank";
29 verbose stack return;
29 verbose stack }
29 verbose stack }
29 verbose stack var extensionObject = JSON.parse(xhrResponse);
29 verbose stack
29 verbose stack if(extensionObject.ReturnCode == "SUCCESS")
29 verbose stack {
29 verbose stack UserCheck.tools.oTimeoutManager.startTimeoutTimer(extensionObject.Expiration - 15, window.oUserAction.handleTimeout);
29 verbose stack }
29 verbose stack else
29 verbose stack {
29 verbose stack if(window.isThinPortal === undefined)
29 verbose stack {
29 verbose stack var button = document.getElementById('UserCheck_OK_Button');
29 verbose stack if(button !=null)
29 verbose stack button.style.display = "none";
29 verbose stack var select = document.getElementById('usercheck_language_selection');
29 verbose stack if(select != null)
29 verbose stack select.disabled = true;
29 verbose stack
29 verbose stack showPortalMessage(PORTAL_IS.L10N.L10N_Obj.getStr("TIMEOUT") + " <a href='" + window.oUserAction.incidentObject.RedirectToAddr + "'>" + PORTAL_IS.L10N.L10N_Obj.getStr("RETRY") + "</a>", null, PORTAL_IS.MESSAGE_TYPE.Display, true);
29 verbose stack }
29 verbose stack else
29 verbose stack {
29 verbose stack /* If we are in thin portal, redirect to about:blank
29 verbose stack so that client can catch it and act accordingly. */
29 verbose stack window.location = "about:blank";
29 verbose stack }
29 verbose stack }
29 verbose stack }
29 verbose stack
29 verbose stack //Prepare for language selection.
29 verbose stack this.prepareLanguageSelection = function()
29 verbose stack {
29 verbose stack var Languages = this.incidentObject.Languages;
29 verbose stack var prevSelectedLanguage = null;
29 verbose stack var userSelected = false;
29 verbose stack if (UserCheck.DataObj.Lang != "" && UserCheck.DataObj.Lang !== undefined)
29 verbose stack {
29 verbose stack prevSelectedLanguage = UserCheck.DataObj.Lang;
29 verbose stack userSelected = true;
29 verbose stack }
29 verbose stack else if (this.incidentObject.PreferredLang != "")
29 verbose stack {
29 verbose stack prevSelectedLanguage = this.incidentObject.PreferredLang;
29 verbose stack }
29 verbose stack else
29 verbose stack {
29 verbose stack prevSelectedLanguage = getCookie('UserCheck_Selected_Language');
29 verbose stack }
29 verbose stack var count = 0;
29 verbose stack
29 verbose stack //If there is no cookie, get the browser locale.
29 verbose stack if(prevSelectedLanguage == null)
29 verbose stack {
29 verbose stack var langArr = {};
29 verbose stack for(var Language in Languages)
29 verbose stack {
29 verbose stack langArr[Languages[Language].LanguageCode] = true;
29 verbose stack }
29 verbose stack
29 verbose stack prevSelectedLanguage = PORTAL_IS.L10N.L10N_Obj.selectLanguage(langArr);
29 verbose stack }
29 verbose stack
29 verbose stack if(document.getElementById('usercheck_language_selection_div') != null)
29 verbose stack {
29 verbose stack count = 0;
29 verbose stack for(var Language in Languages)
29 verbose stack {
29 verbose stack var select = document.getElementById('usercheck_language_selection');
29 verbose stack select.options[select.options.length] = new Option(Languages[Language].Language, Language, false, Language === prevSelectedLanguage);
29 verbose stack count++;
29 verbose stack }
29 verbose stack //Display language selection only if NOT in thin portal.
29 verbose stack if(count > 1 && window.isThinPortal === undefined)
29 verbose stack document.getElementById('usercheck_language_selection_div').style.display = "block";
29 verbose stack
29 verbose stack }
29 verbose stack this.handleLanguageChange(true, userSelected);
29 verbose stack }
29 verbose stack
29 verbose stack //Handles language change.
29 verbose stack this.handleLanguageChange = function(noReloadLang, userSelected)
29 verbose stack {
29 verbose stack var select = document.getElementById('usercheck_language_selection');
29 verbose stack var selectedLanguage = select.options[select.selectedIndex].value;
29 verbose stack if(noReloadLang === true)
29 verbose stack {
29 verbose stack //No need to load the language - if it is already loaded.
29 verbose stack this.asyncLanguageChangeCallback(userSelected);
29 verbose stack }
29 verbose stack else
29 verbose stack {
29 verbose stack //Reload language strings.
29 verbose stack PORTAL_IS.L10N.L10N_Obj.reloadLanguageTo(selectedLanguage, "en", this.asyncLanguageChangeCallback);
29 verbose stack }
29 verbose stack
29 verbose stack }
29 verbose stack
29 verbose stack this.checkBoxExists = function(adminMessage)
29 verbose stack {
29 verbose stack if(adminMessage.indexOf("UserCheck_Confirm_Checkbox") != -1)
29 verbose stack return true;
29 verbose stack
29 verbose stack return false;
29 verbose stack }
29 verbose stack
29 verbose stack this.textareaExists = function(adminMessage)
29 verbose stack {
29 verbose stack if(adminMessage.indexOf("UserCheck_Textual_Input") != -1)
29 verbose stack return true;
29 verbose stack
29 verbose stack return false;
29 verbose stack }
29 verbose stack
29 verbose stack this.asyncLanguageChangeCallback = function(userSelected)
29 verbose stack {
29 verbose stack if (userSelected === undefined)
29 verbose stack {
29 verbose stack userSelected = true;
29 verbose stack }
29 verbose stack var select = document.getElementById('usercheck_language_selection');
29 verbose stack var check = document.getElementById('UserCheck_Confirm_Checkbox');
29 verbose stack
29 verbose stack var selectedLanguage = "Default";
29 verbose stack if(select != null)
29 verbose stack selectedLanguage = select.options[select.selectedIndex].value;
29 verbose stack var checkBoxValue = check != null ? check.checked : false;
29 verbose stack
29 verbose stack //Save cookie for the selected language. Only if it is from a User Selection.
29 verbose stack if (userSelected)
29 verbose stack {
29 verbose stack setCookie('UserCheck_Selected_Language', selectedLanguage == "Default" ? "en" : selectedLanguage, 31556926, "/");
29 verbose stack var cookieVal = getCookie('UserCheck_UserID');
29 verbose stack
29 verbose stack var handleUpdateUserDataResponse = function(xhrStatus, xhrResponse, callback){
29 verbose stack var newURL = window.location.href;
29 verbose stack //alert("newURL '"+newURL+"'");
29 verbose stack var langLoc = newURL.indexOf("&Lang=");
29 verbose stack //alert("langLoc '"+langLoc+"'");
29 verbose stack if (langLoc != -1)
29 verbose stack {
29 verbose stack newURL = newURL.substring(0, langLoc);
29 verbose stack //alert("newURL '"+newURL+"'");
29 verbose stack }
29 verbose stack window.location = newURL;
29 verbose stack }
29 verbose stack
29 verbose stack sendAsynchronousRequest(getURL("UpdateUserData"),
29 verbose stack "Language="+encodeURIComponent(selectedLanguage) + "&IID="+encodeURIComponent(UserCheck.DataObj.IID)+"&UserID="+cookieVal,
29 verbose stack handleUpdateUserDataResponse,
29 verbose stack this,
29 verbose stack [new Callback()]);
29 verbose stack }
29 verbose stack else
29 verbose stack {
29 verbose stack
29 verbose stack //Keep this value globally for other funcs.
29 verbose stack window.oUserAction.incidentObject.SelectedLanguage = selectedLanguage;
29 verbose stack
29 verbose stack var Languages = window.oUserAction.incidentObject.Languages;
29 verbose stack var TitleText = Languages[selectedLanguage].TitleText;
29 verbose stack var AdminMessage = Languages[selectedLanguage].AdminMessage;
29 verbose stack var CancelMessage = Languages[selectedLanguage].CancelMessage;
29 verbose stack var OKButtonMessage = window.oUserAction.incidentObject.OKButtonMessage[selectedLanguage];
29 verbose stack var CancelButtonMessage = window.oUserAction.incidentObject.CancelButtonMessage[selectedLanguage];
29 verbose stack var SendButtonMessage = window.oUserAction.incidentObject.SendButtonMessage[selectedLanguage];
29 verbose stack var MiddleButtonMessage = window.oUserAction.incidentObject.MiddleButtonMessage[selectedLanguage];
29 verbose stack var HTTPLearningEnabled = window.oUserAction.incidentObject.HTTPLearningEnabled;
29 verbose stack var PageTitle = Languages[selectedLanguage].PageTitle;
29 verbose stack
29 verbose stack document.getElementById('usercheck_title_div').innerHTML = TitleText;
29 verbose stack
29 verbose stack if(window.oUserAction.incidentObject.HasBeenCancelled === undefined || window.oUserAction.incidentObject.HasBeenCancelled === false)
29 verbose stack {
29 verbose stack if (window.oUserAction.incidentObject.IncidentStatus == 0 || window.oUserAction.incidentObject.IncidentStatus == 2 || window.oUserAction.incidentObject.IncidentStatus == 8)//ok or cancel or ok_scrubbing
29 verbose stack {
29 verbose stack document.getElementById('usercheck_main_div').innerHTML = AdminMessage;
29 verbose stack }
29 verbose stack else if (window.oUserAction.incidentObject.IncidentStatus == 3)// sent
29 verbose stack {
29 verbose stack // if http learning is enabled on action succeded show the HTTP_LEARNING message
29 verbose stack if (HTTPLearningEnabled == true && window.oUserAction.incidentObject.RedirectToAddr != "")
29 verbose stack {
29 verbose stack var usercheck_main_div = document.getElementById('usercheck_main_div')
29 verbose stack if (usercheck_main_div != null)
29 verbose stack usercheck_main_div.innerHTML = "<p>" +PORTAL_IS.L10N.L10N_Obj.getStr("HTTP_LEARNING")+"</p>";
29 verbose stack }
29 verbose stack else // an SMTP message
29 verbose stack {
29 verbose stack document.getElementById('usercheck_main_div').innerHTML = AdminMessage;
29 verbose stack }
29 verbose stack }
29 verbose stack else if (window.oUserAction.incidentObject.IncidentStatus == 4)//discarded
29 verbose stack {
29 verbose stack document.getElementById('usercheck_main_div').innerHTML = AdminMessage;
29 verbose stack }
29 verbose stack else if (window.oUserAction.incidentObject.IncidentStatus == 5)//already sent
29 verbose stack {
29 verbose stack if (HTTPLearningEnabled == true && window.oUserAction.incidentObject.RedirectToAddr != "")
29 verbose stack {
29 verbose stack //if approved http and then refreshed the page
29 verbose stack var usercheck_main_div = document.getElementById('usercheck_main_div')
29 verbose stack if (usercheck_main_div != null)
29 verbose stack usercheck_main_div.innerHTML = "<p>" +PORTAL_IS.L10N.L10N_Obj.getStr("HTTP_LEARNING")+"</p>";
29 verbose stack }
29 verbose stack else
29 verbose stack {
29 verbose stack document.getElementById('usercheck_main_div').innerHTML = AdminMessage;
29 verbose stack var return_to_site_div = document.getElementById('usercheck_return_to_site_div')
29 verbose stack if (return_to_site_div != null)
29 verbose stack return_to_site_div.innerHTML = "<p style='color: #FF5000;font-weight: bold;'>" +PORTAL_IS.L10N.L10N_Obj.getStr("EMAIL_ALREADY_SENT") +"</p>";
29 verbose stack }
29 verbose stack }
29 verbose stack else if (window.oUserAction.incidentObject.IncidentStatus == 6)//already discarded
29 verbose stack {
29 verbose stack document.getElementById('usercheck_main_div').innerHTML = AdminMessage;
29 verbose stack var return_to_site_div = document.getElementById('usercheck_return_to_site_div')
29 verbose stack if (return_to_site_div != null)
29 verbose stack return_to_site_div.innerHTML = "<p style='color: #FF5000;font-weight: bold;'>" +PORTAL_IS.L10N.L10N_Obj.getStr("EMAIL_ALREADY_DISCARDED") +"</p>";
29 verbose stack }
29 verbose stack else
29 verbose stack {
29 verbose stack document.getElementById('usercheck_main_div').innerHTML = "<p>" + PORTAL_IS.L10N.L10N_Obj.getStr("UNKOWN_INCIDENT_STATUS") + "</p>" + window.oUserAction.incidentObject.IncidentStatus;
29 verbose stack }
29 verbose stack
29 verbose stack
29 verbose stack var btnDiv = document.getElementById('usercheck_ok_div');
29 verbose stack if (btnDiv != null)
29 verbose stack btnDiv.innerHTML = OKButtonMessage;
29 verbose stack btnDiv = document.getElementById('usercheck_cancel_div');
29 verbose stack if (btnDiv != null)
29 verbose stack btnDiv.innerHTML = CancelButtonMessage;
29 verbose stack btnDiv = document.getElementById('usercheck_send_div');
29 verbose stack // show the send button on SMTP (which is actually the send button) OR show it on inform action (which is actually OK button)
29 verbose stack if (btnDiv != null && (window.oUserAction.incidentObject.RedirectToAddr == "" || window.oUserAction.incidentObject.Action == "INFORM") )
29 verbose stack {
29 verbose stack // alert("setting usercheck_send_div");
29 verbose stack btnDiv.innerHTML = SendButtonMessage;
29 verbose stack }
29 verbose stack btnDiv = document.getElementById('usercheck_middle_div');
29 verbose stack if (btnDiv != null)
29 verbose stack {
29 verbose stack // alert("setting discard button div");
29 verbose stack btnDiv.innerHTML = MiddleButtonMessage;
29 verbose stack }
29 verbose stack var goBackDiv = document.getElementById('usercheck_return_to_site_div');
29 verbose stack if (goBackDiv)
29 verbose stack {
29 verbose stack // show return to site only when its http violation AND if the action is: sent or discarded or already sent or already discarded or cancelled.
29 verbose stack if (window.oUserAction.incidentObject.RedirectToAddr != "" && (window.oUserAction.incidentObject.IncidentStatus == 3 || window.oUserAction.incidentObject.IncidentStatus == 4 || window.oUserAction.incidentObject.IncidentStatus == 5 || window.oUserAction.incidentObject.IncidentStatus == 6 || window.oUserAction.incidentObject.IncidentStatus == 2))
29 verbose stack {
29 verbose stack goBackDiv.innerHTML = '<a href="' + window.oUserAction.incidentObject.RedirectToAddr + '">' + PORTAL_IS.L10N.L10N_Obj.getStr("RETURN_TO_SITE") + '</a>';
29 verbose stack }
29 verbose stack }
29 verbose stack }
29 verbose stack else
29 verbose stack document.getElementById('usercheck_main_div').innerHTML = CancelMessage;
29 verbose stack
29 verbose stack var page_title = document.getElementById('usercheck_page_title');
29 verbose stack if(page_title != null)
29 verbose stack page_title.innerHTML = PageTitle;
29 verbose stack
29 verbose stack var span = document.getElementById('UserCheck_OK_Button_span');
29 verbose stack if(span != null)
29 verbose stack span.innerHTML = PORTAL_IS.L10N.L10N_Obj.getStr('BUTTON.OK');
29 verbose stack
29 verbose stack span = document.getElementById('UserCheck_Cancel_Button_span');
29 verbose stack if(span != null)
29 verbose stack span.innerHTML = PORTAL_IS.L10N.L10N_Obj.getStr('BUTTON.CANCEL');
29 verbose stack
29 verbose stack span = document.getElementById('UserCheck_Send_Button_span');
29 verbose stack if(span != null)
29 verbose stack span.innerHTML = PORTAL_IS.L10N.L10N_Obj.getStr('BUTTON.SEND');
29 verbose stack span = document.getElementById('UserCheck_Middle_Button_span');
29 verbose stack if(span != null)
29 verbose stack {
29 verbose stack if (window.oUserAction.incidentObject.RedirectToAddr == "")
29 verbose stack span.innerHTML = PORTAL_IS.L10N.L10N_Obj.getStr('BUTTON.DISCARD');
29 verbose stack else
29 verbose stack span.innerHTML = PORTAL_IS.L10N.L10N_Obj.getStr("BUTTON.APPROVE");
29 verbose stack }
29 verbose stack
29 verbose stack var reportLink = document.getElementById('UserCheck_Wrong_Category');
29 verbose stack if(reportLink != null)
29 verbose stack {
29 verbose stack var correctClass = window.oUserAction.getCorrectClass();
29 verbose stack
29 verbose stack reportLink.setAttribute(correctClass, "usercheck_url_class");
29 verbose stack
29 verbose stack reportLink.onclick = function(e) { window.oUserAction.sendReport(); }
29 verbose stack }
29 verbose stack
29 verbose stack //Clear the error message when switching language.
29 verbose stack var errorElement = document.getElementById('usercheck_error_div');
29 verbose stack if(errorElement != null)
29 verbose stack errorElement.innerHTML = "&nbsp;";
29 verbose stack
29 verbose stack //Keep TextArea default text to disallow it as input.
29 verbose stack var textarea_element = null;
29 verbose stack
29 verbose stack if(window.oUserAction.textareaExists(AdminMessage))
29 verbose stack {
29 verbose stack textarea_element = document.getElementById('UserCheck_Textual_Input');
29 verbose stack //If the textarea is an incorrect element or length is correct, check passes.
29 verbose stack if(textarea_element.value === undefined)
29 verbose stack {
29 verbose stack //This element is not really our text area so we don't need it.
29 verbose stack textarea_element = null;
29 verbose stack }
29 verbose stack }
29 verbose stack
29 verbose stack if(textarea_element != null)
29 verbose stack {
29 verbose stack window.oUserAction.textAreaText = textarea_element.value;
29 verbose stack
29 verbose stack var correctClass = window.oUserAction.getCorrectClass();
29 verbose stack textarea_element.setAttribute(correctClass, "usercheck_message_class usercheck_textual_input_class usercheck_textual_input_class_required");
29 verbose stack
29 verbose stack textarea_element.onfocus = function() { window.oUserAction.clearRequiredInput(); };
29 verbose stack }
29 verbose stack //disable the approve button only on PortalMaindlp. on thin client approve button should always be enabled
29 verbose stack if (window.oUserAction.incidentObject.RedirectToAddr != "" && window.isThinPortal != true)
29 verbose stack {
29 verbose stack window.oUserActionCommon.DlpHttpLearning(AdminMessage,HTTPLearningEnabled);
29 verbose stack }
29 verbose stack // hiding the cancel button on infom on dlp only
29 verbose stack window.oUserActionCommon.DlpHideCancelBtn(window.oUserAction.incidentObject.Action);
29 verbose stack }
29 verbose stack }
29 verbose stack
29 verbose stack //Sends report for wrong category.
29 verbose stack this.sendReport = function()
29 verbose stack {
29 verbose stack var Variables = window.oUserAction.incidentObject.Variables;
29 verbose stack
29 verbose stack var resource = Variables['resource'] === undefined ? "" : Variables['resource'];
29 verbose stack var hmac = Variables['resource_hmac'] === undefined ? "" : Variables['resource_hmac'];
29 verbose stack var version = Variables['version'];
29 verbose stack var product = Variables['product'];
29 verbose stack
29 verbose stack //Get the application name. If this variable has been modified (added application icon for example), take the original.
29 verbose stack var appname = Variables['application_name_orig'];
29 verbose stack var malwareID = Variables['application_id'];
29 verbose stack if(appname === undefined)
29 verbose stack appname = Variables['application_name'];
29 verbose stack
29 verbose stack var base64UrlEncode = function(input) { return $.base64Encode(input).replace(/\+/g, '-').replace(/\//g, '_').replace(/\=/g, '') };
29 verbose stack
29 verbose stack //Encode to base64 URL form spec.
29 verbose stack appname = base64UrlEncode(appname);
29 verbose stack resource = base64UrlEncode(resource);
29 verbose stack
29 verbose stack //URL of the external URL
29 verbose stack var url = window.location.protocol + "//cws.checkpoint.com/MISCAT/miscat/1.0?resource=" + resource + "&hmac=" + hmac + "&appname=" + appname + "&version=" + version + "&product=" + product + "&malwareID=" + malwareID;
29 verbose stack
29 verbose stack //Display a portal messge indicating the action was successful. On mobile devices we use the built-in message display.
29 verbose stack if(window.browserDetails.isMobile())
29 verbose stack alert(PORTAL_IS.L10N.L10N_Obj.getStr("REPORT_SUCCESS"));
29 verbose stack else
29 verbose stack showPortalMessage('<table><tr><td>' + draw_img_tag_span(getURL("images/confirmation.png")) + '&nbsp;&nbsp;</td><td>' + PORTAL_IS.L10N.L10N_Obj.getStr("REPORT_SUCCESS") + '</td></tr></table>', null, PORTAL_IS.MESSAGE_TYPE.Confirmation, true, false);
29 verbose stack
29 verbose stack var img = new Image();
29 verbose stack img.src = url;
29 verbose stack
29 verbose stack var reportLink = document.getElementById('UserCheck_Wrong_Category');
29 verbose stack
29 verbose stack var correctClass = window.oUserAction.getCorrectClass();
29 verbose stack
29 verbose stack //Disable the link.
29 verbose stack reportLink.setAttribute(correctClass, "usercheck_url_class usercheck_disabled_url_class");
29 verbose stack
29 verbose stack //send log on wrong category
29 verbose stack var cookie = getCookie('UserCheck_UserID');
29 verbose stack
29 verbose stack var requestData = {};
29 verbose stack
29 verbose stack requestData.IID = "-1";
29 verbose stack requestData.UserOption = "LOG-WRONG-CATEGORY";
29 verbose stack requestData.UserID = cookie;
29 verbose stack requestData.IsReasonExist = false;
29 verbose stack
29 verbose stack
29 verbose stack //Sometimes the cookie is not written correctly, so used global user.
29 verbose stack if(requestData.UserID == null || requestData.UserID == "")
29 verbose stack requestData.UserID = g_userID;
29 verbose stack
29 verbose stack requestData.IID = UserCheck.DataObj.IID;
29 verbose stack
29 verbose stack var sAbsoluteURL = PORTAL_IS.TOOLS.getURL("data/GetUserCheckUserChoiceData");
29 verbose stack
29 verbose stack sendAsynchronousRequest(sAbsoluteURL,
29 verbose stack flattenObject(requestData),
29 verbose stack this.handleUserReportWrongCategoryData,
29 verbose stack this,
29 verbose stack [new Callback()]);
29 verbose stack
29 verbose stack //Nothing should happen on click from now on.
29 verbose stack reportLink.onclick = function() { };
29 verbose stack }
29 verbose stack
29 verbose stack this.handleReportTimeout = function()
29 verbose stack {
29 verbose stack var elem = document.getElementById('testID');
29 verbose stack document.getElementsByTagName('head')[0].removeChild(elem);
29 verbose stack }
29 verbose stack
29 verbose stack //Verifies the input of the user, including checkbox and textarea.
29 verbose stack this.highlightInput = function()
29 verbose stack {
29 verbose stack var checkbox_element = null;
29 verbose stack var textarea_element = null;
29 verbose stack var checkbox_ready = false;
29 verbose stack var textarea_ready = false;
29 verbose stack
29 verbose stack var AdminMessage = window.oUserAction.incidentObject.Languages[window.oUserAction.incidentObject.SelectedLanguage].AdminMessage;
29 verbose stack
29 verbose stack //If the checkbox exists (and it is a correct element), its value will determine the button status.
29 verbose stack if(window.oUserAction.incidentObject.IsCheckBoxEnforced == true && window.oUserAction.checkBoxExists(AdminMessage) == true && document.getElementById('UserCheck_Confirm_Checkbox').checked !== undefined)
29 verbose stack {
29 verbose stack checkbox_element = document.getElementById('UserCheck_Confirm_Checkbox');
29 verbose stack checkbox_ready = checkbox_element.checked;
29 verbose stack }
29 verbose stack else
29 verbose stack checkbox_ready = true;
29 verbose stack
29 verbose stack //If the reason textbox exists and is enforced, its value will determine the button status.
29 verbose stack if(window.oUserAction.incidentObject.IsReasonEnforced === true && window.oUserAction.textareaExists(AdminMessage))
29 verbose stack {
29 verbose stack textarea_element = document.getElementById('UserCheck_Textual_Input');
29 verbose stack
29 verbose stack //If the textarea is an incorrect element or length is correct, check passes.
29 verbose stack if(textarea_element.value === undefined)
29 verbose stack {
29 verbose stack textarea_ready = true;
29 verbose stack //This element is not really our text area so we don't need it.
29 verbose stack textarea_element = null;
29 verbose stack }
29 verbose stack else
29 verbose stack {
29 verbose stack if (textarea_element.value.length > 0 && textarea_element.value.length <= 400 && textarea_element.value != PORTAL_IS.L10N.L10N_Obj.getStr("ENTER_TEXT") && textarea_element.value != window.oUserAction.textAreaText)
29 verbose stack textarea_ready = true;
29 verbose stack else
29 verbose stack textarea_ready = false;
29 verbose stack }
29 verbose stack }
29 verbose stack else
29 verbose stack textarea_ready = true;
29 verbose stack
29 verbose stack var all_ready = checkbox_ready === true && textarea_ready === true;
29 verbose stack
29 verbose stack var correctClass = window.oUserAction.getCorrectClass();
29 verbose stack var elememt_to_scroll = null;
29 verbose stack
29 verbose stack if(checkbox_element != null)
29 verbose stack {
29 verbose stack
29 verbose stack checkbox_element.parentNode.parentNode.parentNode.parentNode.setAttribute(correctClass, (checkbox_ready ? "usercheck_red_no_highlight" : "usercheck_red_highlight" ));
29 verbose stack elememt_to_scroll = checkbox_ready ? elememt_to_scroll : checkbox_element.parentNode.parentNode.parentNode.parentNode;
29 verbose stack }
29 verbose stack
29 verbose stack if(textarea_element != null)
29 verbose stack {
29 verbose stack textarea_element.setAttribute(correctClass, "usercheck_message_class usercheck_textual_input_class " + (textarea_ready ? "usercheck_red_no_highlight" : "usercheck_red_highlight usercheck_textual_input_class_required" ));
29 verbose stack elememt_to_scroll = textarea_ready ? elememt_to_scroll : textarea_element;
29 verbose stack if(!textarea_ready)
29 verbose stack {
29 verbose stack if(window.oUserAction.textAreaText === "" || textarea_element.value !== window.oUserAction.textAreaText)
29 verbose stack {
29 verbose stack if(window.oUserAction.textAreaText != "")
29 verbose stack textarea_element.value = window.oUserAction.textAreaText;
29 verbose stack else
29 verbose stack textarea_element.value = PORTAL_IS.L10N.L10N_Obj.getStr("ENTER_TEXT");
29 verbose stack }
29 verbose stack textarea_element.onfocus = function() { window.oUserAction.clearRequiredInput(); };
29 verbose stack }
29 verbose stack }
29 verbose stack
29 verbose stack if(!textarea_ready && !checkbox_ready && checkbox_element!=null && textarea_element!=null)
29 verbose stack {
29 verbose stack if(checkbox_element.parentNode.parentNode.parentNode.parentNode.offsetTop > textarea_element.offsetTop)
29 verbose stack elememt_to_scroll = checkbox_element;
29 verbose stack
29 verbose stack }
29 verbose stack
29 verbose stack if(elememt_to_scroll!=null){
29 verbose stack elememt_to_scroll.scrollIntoView(false);
29 verbose stack var scrollableDiv = document.getElementById("usercheck_scrollable_div");
29 verbose stack if (scrollableDiv !== null)
29 verbose stack scrollableDiv.scrollLeft = 0;
29 verbose stack }
29 verbose stack
29 verbose stack var errorElement = document.getElementById('usercheck_error_div');
29 verbose stack if(errorElement != null)
29 verbose stack errorElement.innerHTML = all_ready ? "" : "<br/><span style='color: #FF0000;'>* " + PORTAL_IS.L10N.L10N_Obj.getStr("REQUIRED_FIELDS") + "</span>";
29 verbose stack
29 verbose stack return all_ready;
29 verbose stack }
29 verbose stack
29 verbose stack this.clearRequiredInput = function()
29 verbose stack {
29 verbose stack textarea_element = document.getElementById('UserCheck_Textual_Input');
29 verbose stack
29 verbose stack textarea_element.value = "";
29 verbose stack
29 verbose stack var correctClass = window.oUserAction.getCorrectClass();
29 verbose stack
29 verbose stack if(textarea_element.getAttribute(correctClass).indexOf("usercheck_red_highlight") !== -1)
29 verbose stack textarea_element.setAttribute(correctClass, "usercheck_message_class usercheck_textual_input_class usercheck_red_highlight");
29 verbose stack else
29 verbose stack textarea_element.setAttribute(correctClass, "usercheck_message_class usercheck_textual_input_class");
29 verbose stack
29 verbose stack textarea_element.onfocus = function() { };
29 verbose stack }
29 verbose stack
29 verbose stack this.sendMail = function()
29 verbose stack {
29 verbose stack DEBUG.out("UserAction::sendMail");
29 verbose stack this.last_action = 'sent';
29 verbose stack
29 verbose stack if(!window.oUserAction.highlightInput())
29 verbose stack //There was some user input missing - don't continue.
29 verbose stack return;
29 verbose stack
29 verbose stack var reason = "";
29 verbose stack if(document.getElementById('UserCheck_Textual_Input') != null)
29 verbose stack {
29 verbose stack reason = document.getElementById('UserCheck_Textual_Input').value;
29 verbose stack //If the reason box is not found, there is nothing to enforce.
29 verbose stack if(reason === undefined)
29 verbose stack {
29 verbose stack reason = "";
29 verbose stack }
29 verbose stack }
29 verbose stack
29 verbose stack
29 verbose stack var sendMailCallback = new Callback();
29 verbose stack sendMailCallback.methodReference = this.handleConfirmationData;
29 verbose stack sendMailCallback.thisArgument = this;
29 verbose stack sendMailCallback.args.push(new Callback());
29 verbose stack PORTAL_IS.AJAX_MGR.sendAsyncReq( getURL("EmailSend"),
29 verbose stack "mailId="+encodeURIComponent(UserCheck.DataObj.IID)+
29 verbose stack "&justification="+encodeURIComponent(reason)+"&action=DLP-CHOICE-ACTION-SEND",
29 verbose stack sendMailCallback,
29 verbose stack null,
29 verbose stack null,
29 verbose stack "Sending email failed.");
29 verbose stack
29 verbose stack
29 verbose stack }
29 verbose stack
29 verbose stack this.discardMail = function()
29 verbose stack {
29 verbose stack DEBUG.out("UserAction::deleteMail");
29 verbose stack this.last_action = 'delete';
29 verbose stack
29 verbose stack var sendMailCallback = new Callback();
29 verbose stack sendMailCallback.methodReference = this.handleConfirmationData;
29 verbose stack sendMailCallback.thisArgument = this;
29 verbose stack sendMailCallback.args.push(new Callback());
29 verbose stack PORTAL_IS.AJAX_MGR.sendAsyncReq( getURL("EmailSend"),
29 verbose stack "mailId="+encodeURIComponent(UserCheck.DataObj.IID)+
29 verbose stack "&justification="+encodeURIComponent("")+"&action=DLP-CHOICE-ACTION-DISCARD",
29 verbose stack sendMailCallback,
29 verbose stack null,
29 verbose stack null,
29 verbose stack "Sending email failed.");
29 verbose stack
29 verbose stack
29 verbose stack }
29 verbose stack
29 verbose stack this.handleConfirmationData = function(xhrStatus, xhrResponse, callback)
29 verbose stack {
29 verbose stack DEBUG.out("UserAction::handleConfirmationData ");
29 verbose stack if (callback == undefined)
29 verbose stack {
29 verbose stack callback = new Callback();
29 verbose stack }
29 verbose stack if (xhrStatus != 200)
29 verbose stack {
29 verbose stack // TODO: Handle error.
29 verbose stack DEBUG.out('Retreiving Single Incident Review Data failed. ('+xhrStatus+')', DEBUG.ERROR);
29 verbose stack callback.call();
29 verbose stack return;
29 verbose stack }
29 verbose stack var newViewJSONObj = JSON.parse(xhrResponse);
29 verbose stack var message = newViewJSONObj.message;
29 verbose stack var lastChanged = newViewJSONObj.lastChanged;
29 verbose stack var succeeded = newViewJSONObj.succeeded;
29 verbose stack if (lastChanged != -1 && lastChanged != 0)
29 verbose stack {
29 verbose stack //message += " ";
29 verbose stack //message += convertToGmt(lastChanged);
29 verbose stack //this.emailData.date = convertToGmt(lastChanged);
29 verbose stack }
29 verbose stack //@@NA add test if this is from Thin Portal and only then redirect to about:blank
29 verbose stack // window.location = "about:blank";
29 verbose stack if (succeeded)
29 verbose stack {
29 verbose stack var cookie = getCookie('UserCheck_UserID');
29 verbose stack var requestData = {};
29 verbose stack requestData.IID = "-1";
29 verbose stack requestData.UserID = cookie;
29 verbose stack requestData.IsReasonExist = true;
29 verbose stack requestData.Reason = "";
29 verbose stack requestData.UserOption = "SEND";
29 verbose stack if (newViewJSONObj.action == "DLP-CHOICE-ACTION-DISCARD")
29 verbose stack {
29 verbose stack requestData.UserOption = "DISCARD";
29 verbose stack }
29 verbose stack
29 verbose stack if (newViewJSONObj.action === undefined || newViewJSONObj.action != "DLP-CHOICE-ACTION-SEND")
29 verbose stack {
29 verbose stack requestData.IsReasonExist = false;
29 verbose stack }
29 verbose stack else
29 verbose stack {
29 verbose stack if(document.getElementById('UserCheck_Textual_Input') != null)
29 verbose stack {
29 verbose stack var reason = document.getElementById('UserCheck_Textual_Input').value;
29 verbose stack
29 verbose stack //If the reason box is not found, there is nothing to enforce.
29 verbose stack if(reason === undefined)
29 verbose stack {
29 verbose stack reason = "";
29 verbose stack requestData.IsReasonExist = false;
29 verbose stack }
29 verbose stack else if(window.oUserAction.incidentObject.IsReasonEnforced === true && (reason.length == 0 || reason.length > 400))
29 verbose stack return;
29 verbose stack
29 verbose stack requestData.Reason = reason;
29 verbose stack }
29 verbose stack else
29 verbose stack {
29 verbose stack requestData.IsReasonExist = false;
29 verbose stack }
29 verbose stack }
29 verbose stack //Sometimes the cookie is not written correctly, so used global user.
29 verbose stack if(requestData.UserID == null || requestData.UserID == "")
29 verbose stack requestData.UserID = g_userID;
29 verbose stack requestData.IID = UserCheck.DataObj.IID;
29 verbose stack
29 verbose stack var sAbsoluteURL = PORTAL_IS.TOOLS.getURL("data/GetUserCheckUserChoiceData");
29 verbose stack
29 verbose stack sendAsynchronousRequest(sAbsoluteURL,
29 verbose stack flattenObject(requestData),
29 verbose stack this.handleUserCheckChoiceData,
29 verbose stack this,
29 verbose stack [new Callback()]);
29 verbose stack }
29 verbose stack
29 verbose stack }
29 verbose stack
29 verbose stack this.goToBlank = function()
29 verbose stack {
29 verbose stack window.location = "about:blank";
29 verbose stack }
29 verbose stack
29 verbose stack this.ApproveHttp = function()
29 verbose stack {
29 verbose stack this.sendMail();
29 verbose stack }
29 verbose stack
29 verbose stack
29 verbose stack this.createScrubbingLinks = function(attachments, isExtended)
29 verbose stack {
29 verbose stack var scrub_files_out = "<ul style=\"list-style-type: none;padding: 0;\">";
29 verbose stack for (var i = 0;i<attachments.length;i++)
29 verbose stack {
29 verbose stack if (attachments[i].fileStatus == "FILE-STATUS-APPROVED-BY-TE" || attachments[i].fileStatus == "FILE-STATUS-AVAILABLE" || attachments[i].fileStatus == "FILE-STATUS-AVAILABLE-SUSPICIOUS")
29 verbose stack {
29 verbose stack var image = "images/confirmation.png";
29 verbose stack var comment = "";
29 verbose stack var toolTip = "Click to download";
29 verbose stack var removedParts = attachments[i].removedParts;
29 verbose stack if (isExtended == true)
29 verbose stack {
29 verbose stack if(removedParts != "")
29 verbose stack {
29 verbose stack removedParts = removedParts.replace(/\n/g,", ");
29 verbose stack comment = " contains " + removedParts;
29 verbose stack }
29 verbose stack else
29 verbose stack {
29 verbose stack comment = PORTAL_IS.L10N.L10N_Obj.getStr(attachments[i].scrubResult);
29 verbose stack }
29 verbose stack }
29 verbose stack scrub_files_out += "<li title=\"" + toolTip + "\"><img src=\"" + image + "\" width=\"20\" height=\"20\"/>&nbsp;&nbsp;" + "<a href=\"ScrubGetFile?IID="+UserCheck.DataObj.IID+"&fileID="+attachments[i].fileId+"\" TARGET=\"_blank\"><span style=\"font-weight:bold\">" + attachments[i].fileName + "</span></a> <span style=\"color:Red;font-size:80%\">" + comment + "</span></li>"
29 verbose stack }
29 verbose stack else
29 verbose stack {
29 verbose stack var description = "";
29 verbose stack var img = "";
29 verbose stack var toolTip = "";
29 verbose stack if (attachments[i].fileStatus == "FILE-STATUS-WAITING-FOR-TE")
29 verbose stack {
29 verbose stack g_refreshFiles = true;
29 verbose stack description = "scanning...";
29 verbose stack img = "img/loader.gif";
29 verbose stack toolTip = "Please wait while file is being scanned";
29 verbose stack }
29 verbose stack else if (attachments[i].fileStatus == "FILE-STATUS-BLOCKED-BY-TE")
29 verbose stack {
29 verbose stack description = "blocked - file is malicious";
29 verbose stack img = "img/block.png";
29 verbose stack toolTip = "File is malicious - blocked for download";
29 verbose stack }
29 verbose stack else if (attachments[i].fileStatus == "FILE-STATUS-BLOCKED-BY-POLICY")
29 verbose stack {
29 verbose stack description = "blocked according to company policy";
29 verbose stack img = "img/block.png";
29 verbose stack toolTip = "File is blocked for download according to company policy";
29 verbose stack }
29 verbose stack scrub_files_out += "<li title=\"" + toolTip + "\"><img src=\"" + img + "\" width=\"20\" height=\"20\"/>&nbsp;&nbsp;" + attachments[i].fileName + " <span style=\"color:LightSteelBlue\">(" + description + ")</span></li>"
29 verbose stack }
29 verbose stack }
29 verbose stack scrub_files_out += "</ul><div id=\"refresh_timer_div\"></div>";
29 verbose stack return scrub_files_out;
29 verbose stack }
29 verbose stack
29 verbose stack this.handleScrubbingFiles = function(xhrStatus, xhrResponse, callback)
29 verbose stack {
29 verbose stack if (callback == undefined)
29 verbose stack {
29 verbose stack callback = new Callback();
29 verbose stack }
29 verbose stack
29 verbose stack if (xhrStatus != 200)
29 verbose stack {
29 verbose stack DEBUG.out('Retreiving UserCheck Incident Data failed. ('+xhrStatus+')', DEBUG.ERROR);
29 verbose stack callback.call();
29 verbose stack return;
29 verbose stack }
29 verbose stack
29 verbose stack this.scrubbingResponse = JSON.parse(xhrResponse);
29 verbose stack
29 verbose stack var attachments = [];
29 verbose stack if( Object.prototype.toString.call( this.scrubbingResponse.data.attachments ) != '[object Array]' ) {
29 verbose stack attachments[0] = this.scrubbingResponse.data.attachments;
29 verbose stack }
29 verbose stack else
29 verbose stack {
29 verbose stack attachments = this.scrubbingResponse.data.attachments;
29 verbose stack }
29 verbose stack
29 verbose stack g_refreshFiles = false;
29 verbose stack var scrub_links_simple = document.getElementById('links_simple');
29 verbose stack if (scrub_links_simple != null)
29 verbose stack {
29 verbose stack if (scrub_links_simple.hasChildNodes())
29 verbose stack scrub_links_simple.removeChild(scrub_links_simple.childNodes[0]);
29 verbose stack var tmp = document.createElement("div");
29 verbose stack tmp.innerHTML = window.oUserAction.createScrubbingLinks(attachments, false);
29 verbose stack scrub_links_simple.appendChild(tmp);
29 verbose stack }
29 verbose stack
29 verbose stack var scrub_links_extended = document.getElementById('links_extended');
29 verbose stack if (scrub_links_extended != null)
29 verbose stack {
29 verbose stack if (scrub_links_extended.hasChildNodes())
29 verbose stack scrub_links_extended.removeChild(scrub_links_extended.childNodes[0]);
29 verbose stack var tmp = document.createElement("div");
29 verbose stack tmp.innerHTML = window.oUserAction.createScrubbingLinks(attachments, true);
29 verbose stack scrub_links_extended.appendChild(tmp);
29 verbose stack }
29 verbose stack
29 verbose stack var scrub_wait_massage = document.getElementById('scrub_wait_message');
29 verbose stack if (scrub_wait_massage != null)
29 verbose stack {
29 verbose stack scrub_wait_massage.style.display = 'none';
29 verbose stack }
29 verbose stack
29 verbose stack if (g_refreshFiles)
29 verbose stack {
29 verbose stack UserCheck.tools.oTimeoutManager.startTimeoutTimer(30, window.oUserAction.refreshScrubbingFiles);
29 verbose stack }
29 verbose stack callback.call();
29 verbose stack }
29 verbose stack
29 verbose stack this.refreshScrubbingFiles = function()
29 verbose stack {
29 verbose stack var requestData = {
29 verbose stack IID: "-1"
29 verbose stack };
29 verbose stack requestData.IID = UserCheck.DataObj.IID;
29 verbose stack var sAbsoluteURL = PORTAL_IS.TOOLS.getURL("data/GetScrubFiles");
29 verbose stack sendAsynchronousRequest(sAbsoluteURL,
29 verbose stack flattenObject(requestData),
29 verbose stack window.oUserAction.handleScrubbingFiles,
29 verbose stack this,
29 verbose stack [new Callback()]);
29 verbose stack }
29 verbose stack
29 verbose stack this.showOrHideRemovedPartsfromFiles = function(FileIndex)
29 verbose stack {
29 verbose stack var infoimg_element = document.getElementById('infoimg_' + FileIndex);
29 verbose stack var removed_parts_element = document.getElementById('removed_parts_' + FileIndex);
29 verbose stack
29 verbose stack if ( infoimg_element != null && removed_parts_element != null )
29 verbose stack {
29 verbose stack if( removed_parts_element.style.display === "none" )
29 verbose stack {
29 verbose stack infoimg_element.style.display = 'none';
29 verbose stack removed_parts_element.style.display = 'inline';
29 verbose stack }
29 verbose stack else
29 verbose stack {
29 verbose stack infoimg_element.style.display = "inline";
29 verbose stack removed_parts_element.style.display = 'none';
29 verbose stack }
29 verbose stack }
29 verbose stack }
29 verbose stack
29 verbose stack } //END: window.UserAction = function()
29 verbose stack
29 verbose stack window.oUserAction = new UserAction();
29 verbose stack oUserAction.init();
29 verbose stack
29 verbose stack </script>
29 verbose stack
29 verbose stack </html>
29 verbose stack
29 verbose stack at Object.parse (native)
29 verbose stack at CachingRegistryClient.<anonymous> (C:\Program Files\nodejs\node_modules\npm\node_modules\npm-registry-client\lib\request.js:237:23)
29 verbose stack at Request._callback (C:\Program Files\nodejs\node_modules\npm\node_modules\npm-registry-client\lib\request.js:210:14)
29 verbose stack at Request.self.callback (C:\Program Files\nodejs\node_modules\npm\node_modules\request\request.js:187:22)
29 verbose stack at emitTwo (events.js:106:13)
29 verbose stack at Request.emit (events.js:191:7)
29 verbose stack at Request.<anonymous> (C:\Program Files\nodejs\node_modules\npm\node_modules\request\request.js:1048:10)
29 verbose stack at emitOne (events.js:96:13)
29 verbose stack at Request.emit (events.js:188:7)
29 verbose stack at IncomingMessage.<anonymous> (C:\Program Files\nodejs\node_modules\npm\node_modules\request\request.js:969:12)
30 verbose cwd D:\XAMPP\htdocs\kdb2
31 error Windows_NT 6.1.7601
32 error argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install" "highcharts" "--save"
33 error node v6.10.3
34 error npm v3.10.10
35 error Unexpected token < in JSON at position 0
35 error <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
35 error
35 error <html>
35 error <head>
35 error <meta name="robots" content="noindex,nofollow" />
35 error <meta content="yes" name="apple-mobile-web-app-capable" />
35 error <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
35 error
35 error <link rel="icon" type="image/vnd.microsoft.icon" href="img/favicon.ico"/> <link rel="shortcut icon" type="image/vnd.microsoft.icon" href="img/favicon.ico"/>
35 error <link id="dynamicCSS" rel="stylesheet" type="text/css" href="/UserCheck/css/Blob_dynamic_css" />
35 error <link id="staticCSS" rel="stylesheet" type="text/css" href="/UserCheck/css/Blob_static.css" />
35 error
35 error
35 error <script type="text/javascript">
35 error //Create a dynamic element to allow sending of the document mode of IE.
35 error //This way we can notify PHP that it can display modern content instead of classic, despite the browser's reporting of being IE7.
35 error var headID = document.getElementsByTagName("head")[0];
35 error var cssNode = document.createElement('link');
35 error cssNode.type = 'text/css';
35 error cssNode.rel = 'stylesheet';
35 error cssNode.href = "/UserCheck/css/UserCheckCSS" + (document.documentMode !== undefined ? "?documentMode=" + document.documentMode : "");
35 error headID.appendChild(cssNode);
35 error
35 error
35 error /*
35 error ========================================================================================================================
35 error PORTAL IS - ESSENTIALS INCLUSION - START
35 error ________________________________________________________________________________________________________________________
35 error */
35 error // Set global PORTAL_IS namespace.
35 error window.PORTAL_IS = {};
35 error
35 error // Set namespace.
35 error PORTAL_IS.CONF = {};
35 error
35 error PORTAL_IS.CONF.AJAX_REQ_TIMEOUT = 15000;
35 error
35 error // These properties describes the external references of the portal.
35 error PORTAL_IS.CONF.MULTI_PORTALS = {};
35 error PORTAL_IS.CONF.MULTI_PORTALS.EXTERNAL_PATH = "";
35 error PORTAL_IS.CONF.MULTI_PORTALS.EXTERNAL_PORT = 443;
35 error PORTAL_IS.CONF.MULTI_PORTALS.EXTERNAL_HOST = "192.168.0.0";
35 error PORTAL_IS.CONF.MULTI_PORTALS.EXTERNAL_SCHEME = "https";
35 error PORTAL_IS.CONF.MULTI_PORTALS.XSRF_TOKEN = "";
35 error
35 error // The current web application name.
35 error PORTAL_IS.CONF.WEBAPP_NAME = "UserCheck";
35 error
35 error // Debug configurations
35 error PORTAL_IS.CONF.MAX_STACK_SIZE = 1000;
35 error PORTAL_IS.CONF.QUIET_MODE = "on".toLowerCase() == "on";
35 error PORTAL_IS.CONF.DEBUG_LEVEL = 0;
35 error
35 error
35 error // Set namespace.
35 error window.PORTAL_IS.L10N = {}
35 error
35 error // Localization object.
35 error //=============================================================================================
35 error function __L10N()
35 error {
35 error this.strings = new Array();
35 error this.browserLangs = new Array();
35 error
35 error this.init = function()
35 error {
35 error var obj = {"UC_TITLE":"Check Point UserCheck","UC_TITLE_MOBILE_DLP":"Check Point UserCheck Mobile DLP","BUTTON.OK":"OK","BUTTON.CANCEL":"Cancel","BUTTON.SEND":"Send","BUTTON.DISCARD":"Discard","BUTTON.APPROVE":"Approve","WRONG_ID":"This notification page has expired. You can safely close the page or ","TIMEOUT":"This notification page has expired. You can safely close the page or ","RETRY":"reload the original page.","REPORT_SUCCESS":"Report was sent successfully.","REPORT_ERROR":"An error occured while sending the report.","REQUIRED_FIELDS":"Required fields","ENTER_TEXT":"Enter text","RETURN_TO_SITE":"Return to site","UC.BLOCKED_IFRAME":"Learn more...","UC.INFO_IFRAME":"Click to resolve...","PLEASE_WAIT":"Please wait . . .","NO_SCRIPT":"This portal requires browser which support JavaScript.<br>Please make sure that you are using an updated browser and that JavaScript is enabled.","MSGBOX_TITLE_CONFIRMATION":"Confirmation","MSGBOX_TITLE_JUSTIFICATION":"Justification","MSGBOX_TITLE_APPROVER":"Approver","MSGBOX_TITLE_WARNING":"Warning","MSGBOX_TITLE_ATTENTION":"Attention","MSGBOX_TITLE_ERROR":"Error","MSGBOX_TITLE_REPORT_ERROR":"Report an error","MSGBOX_TITLE_EXTEND_EXPIRATION":"Extend expiration date","DEFAULT_GENERIC_CLIENT_ERROR":"An unexpected error has occurred.\nYou may still be able to continue working normally.\nPlease retry accessing the web page in a short while.\n\n","DEFAULT_GENERIC_TIMEOUT_CLIENT_ERROR":"You may not access this page, or this page has expired.\nPlease sign in.","LOG_REFERENCE_ID":"Log reference id: ","ERROR.LINK.SEND_ERROR_REPORT":"Send error report","ERROR.LINK.IM_HAVING_PROBLEMS":"I am having problems with this Portal.","CHECKPOINT_COPY_RIGHTS":"&copy;2011 Check Point Software Technologies Ltd.","EMAIL_SENT":"The email has been sent","EMAIL_DISCARDED":"The email has been discarded","EMAIL_ALREADY_SENT":"The email has already been sent","EMAIL_ALREADY_DISCARDED":"The email has already been discarded","UNKOWN_INCIDENT_STATUS":"The incident status is unkown","REVIEW_TEXT":"Review issue in portal","MAIL.ITEM.ATTACHMENTS":"Attachments","HTTP_LEARNING":"To complete the operation, <b>please return to site and resend the information<\/b>, thanks.","HTTP_LEARNING_ERROR_MSG":"Sending the message cannot be approved,<\/br> please contact your system administrator.","HTTP_LEARNING_ERROR_TOOLTIP":"Sending the message cannot be approved, please contact your system administrator.","CP_SCRUB_WAIT_MESSAGE":"Please wait while loading files...","CP_SCRUB_RESULT_SUCCESS":"","CP_SCRUB_RESULT_FAILURE":"File structure may be corrupted","CP_SCRUB_RESULT_TIMEOUT":"","CP_SCRUB_RESULT_UNSUPPORTED_FILE":"File format is not supported","CP_SCRUB_RESULT_NOT_SCRUBBED":"","CP_SCRUB_RESULT_INTERNAL_ERROR":"","CP_SCRUB_RESULT_NO_VALID_CONTRACT":"","CP_SCRUB_RESULT_SKIPPED_BY_TE_CONFIDENCE":"","CP_SCRUB_RESULT_OUT_OF_MEMORY":"","CP_SCRUB_RESULT_DOCSEC_FILE":"File encrypted using Checkpoint's Document Security","CP_SCRUB_RESULT_ENCRYPTED_FILE":"contains encrypted data","CP_SCRUB_RESULT_SKIPPED_BY_SCRIPT":"","CP_SCRUB_RESULT_DISK_LIMIT_REACHED":""};
35 error
35 error for(val in obj)
35 error this.strings[val] = obj[val];
35 error
35 error obj = ["en"];
35 error
35 error for(val in obj)
35 error {
35 error this.browserLangs[val] = obj[val].split(';')[0];
35 error }
35 error }
35 error
35 error this.getStr = function(stringId)
35 error {
35 error return this.strings[stringId];
35 error }
35 error
35 error this.selectLanguage = function(languageArray)
35 error {
35 error for(lang in this.browserLangs)
35 error {
35 error if(languageArray[this.browserLangs[lang]] === true)
35 error return this.browserLangs[lang];
35 error
35 error if(languageArray[this.browserLangs[lang].substring(0, 2)] === true)
35 error return this.browserLangs[lang].substring(0, 2);
35 error }
35 error
35 error //If nothing succeeded, return the default.
35 error return "en";
35 error }
35 error
35 error this.reloadLanguageTo = function(lang, fallbackLang, callback)
35 error {
35 error var requestData = {};
35 error
35 error requestData.lang = lang;
35 error requestData.fallbackLang = fallbackLang;
35 error
35 error var sAbsoluteURL = PORTAL_IS.TOOLS.getURL("data/GetTranslationData");
35 error
35 error sendAsynchronousRequest(sAbsoluteURL,
35 error flattenObject(requestData),
35 error this.asyncReloadLangHandler,
35 error this,
35 error [callback]);
35 error }
35 error
35 error this.asyncReloadLangHandler = function(xhrStatus, xhrResponse, callback)
35 error {
35 error if (xhrStatus != 200)
35 error {
35 error DEBUG.out('Retreiving translation data failed. ('+xhrStatus+')', DEBUG.ERROR);
35 error return;
35 error }
35 error
35 error var obj = JSON.parse(xhrResponse);
35 error this.strings = null; //Ensure removing of old values.
35 error this.strings = new Array();
35 error
35 error for(val in obj)
35 error this.strings[val] = obj[val];
35 error
35 error callback();
35 error }
35 error }
35 error //=============================================================================================
35 error
35 error //Localization object.
35 error L10N_Obj = new __L10N();
35 error L10N_Obj.init();
35 error PORTAL_IS.L10N.L10N_Obj = L10N_Obj;
35 error
35 error /*
35 error ________________________________________________________________________________________________________________________
35 error
35 error PORTAL IS - ESSENTIALS INCLUSION - END
35 error ========================================================================================================================
35 error */
35 error var noJSCrypto = "true";
35 error </script>
35 error <script type="text/javascript" src="js/Blob.js"></script>
35 error <script type="text/javascript">
35 error
35 error
35 error // Create namespace
35 error window.UserCheck = {};
35 error window.UserCheck.tools = {};
35 error
35 error // =======================================================================================
35 error function parseSender(value)
35 error {
35 error return value.address;
35 error }
35 error // =======================================================================================
35 error
35 error
35 error // =======================================================================================
35 error // Render recipient list from and array.
35 error // String[] recipientsArr - Array of recipients.
35 error // [int ellipsisLimit] - A string beyond this length will be cut and added ellipsis. Optional, default is 0 - no ellipsis.
35 error // [bool useLinebreakes] - Should a line break be added after each recipient. Optional, default is true.
35 error function recipientsArr2StrInTable(recipientsArr, ellipsisLimit, useLinebreakes)
35 error {
35 error if (ellipsisLimit == undefined)
35 error {
35 error ellipsisLimit = 0;
35 error }
35 error
35 error if (useLinebreakes == undefined)
35 error {
35 error useEllipsis = true;
35 error }
35 error
35 error var recipientsList = "";
35 error
35 error for (var i=0; i<recipientsArr.length; i++)
35 error {
35 error recipientsList += HTMLEncode(recipientsArr[i].address);
35 error if (i < recipientsArr.length-1)
35 error {
35 error recipientsList += ", ";
35 error if (useLinebreakes)
35 error {
35 error recipientsList += "<br>";
35 error }
35 error }
35 error }
35 error
35 error if (ellipsisLimit > 0)
35 error {
35 error //recipientsList = Ext.util.Format.ellipsis(recipientsList, ellipsisLimit);
35 error recipientsList = recipientsList;
35 error }
35 error
35 error return recipientsList;
35 error }
35 error // =======================================================================================
35 error
35 error
35 error // =======================================================================================
35 error // Render recipient list from and array.
35 error // Sender sender - The sender data.
35 error // [int ellipsisLimit] - A string beyond this length will be cut and added ellipsis. Optional, default is 0 - no ellipsis.
35 error // [bool useLinebreakes] - Should a line break be added after each recipient. Optional, default is true.
35 error function getSenderName(sender, ellipsisLimit)
35 error {
35 error var output = "";
35 error
35 error if (ellipsisLimit == undefined)
35 error {
35 error ellipsisLimit = 0;
35 error }
35 error
35 error if (sender.name.empty())
35 error {
35 error output = sender.address;
35 error }
35 error else
35 error {
35 error output = sender.name;
35 error }
35 error
35 error // if (ellipsisLimit > 0)
35 error // {
35 error // output = Ext.util.Format.ellipsis(output, ellipsisLimit);
35 error // }
35 error
35 error return output;
35 error }
35 error // =======================================================================================
35 error
35 error
35 error // =======================================================================================
35 error // Render recipient list from and array.
35 error // String sender - The subject string.
35 error // [int ellipsisLimit] - A string beyond this length will be cut and added ellipsis. Optional, default is 0 - no ellipsis.
35 error // [bool useLinebreakes] - Should a line break be added after each recipient. Optional, default is true.
35 error function getSubject(subject, ellipsisLimit)
35 error {
35 error var output = subject;
35 error
35 error if (ellipsisLimit == undefined)
35 error {
35 error ellipsisLimit = 0;
35 error }
35 error
35 error // if (ellipsisLimit > 0)
35 error // {
35 error // output = Ext.util.Format.ellipsis(output, ellipsisLimit);
35 error // }
35 error
35 error return output;
35 error }
35 error // =======================================================================================
35 error
35 error
35 error // =======================================================================================
35 error // tranform recipients array to string
35 error function recipientsArr2Str(recipientsArr,type)
35 error {
35 error var recipientsList = "";
35 error var address = "";
35 error var commaNeeded = false;
35 error for (var i=0; i<recipientsArr.length; i++)
35 error {
35 error if (type == recipientsArr[i].recipientType)
35 error {
35 error if (!commaNeeded)
35 error commaNeeded = true;
35 error else
35 error recipientsList += ", ";
35 error
35 error address = HTMLEncode(recipientsArr[i].address);
35 error if (recipientsArr[i].isExternal)
35 error {
35 error address = '<span ' + GetDomainColor(recipientsArr[i].address)+' >' + address + '</span>'
35 error }
35 error recipientsList += address;
35 error }
35 error }
35 error
35 error return recipientsList;
35 error }
35 error
35 error // =======================================================================================
35 error function arr2Str(arr)
35 error {
35 error var str = "";
35 error var commaNeeded = false;
35 error for (var i=0; i<arr.length; i++)
35 error {
35 error if (!commaNeeded)
35 error {
35 error commaNeeded = true;
35 error }
35 error else
35 error {
35 error str += ", ";
35 error }
35 error str += arr[i];
35 error }
35 error
35 error return str;
35 error }
35 error
35 error function GetDomainColor(str)
35 error {
35 error // var highlightColors = new Array("FFFF00","00FF00","00FFFF","FF00FF","FF0000","FFFF99","99FF99","CCFFFF","FFCCFF", "FF9999")
35 error var highlightColors = new Array("FFFF00","FF00FF","FF0000","FFBB00","FF9999");
35 error domainName = GetDomainName(str);
35 error if (domainName==null) return null;
35 error
35 error hash=0;
35 error for (i=0; i<domainName.length; i++)
35 error {
35 error hash += domainName.charCodeAt(i);
35 error }
35 error hash = hash % (highlightColors.length);
35 error return 'style="background-color: #' + highlightColors[hash] + '; text-decoration: underline;"';
35 error }
35 error
35 error /*
35 error // =======================================================================================
35 error UserCheck.tools.clearContainer = function(containerId)
35 error {
35 error DEBUG.out("Clear container: "+containerId);
35 error var container = Ext.getCmp(containerId);
35 error if ((container) && (container.items))
35 error {
35 error container.items.each(
35 error function(item)
35 error {
35 error container.remove(item, true);
35 error }
35 error );
35 error }
35 error }
35 error // =======================================================================================
35 error */
35 error
35 error // Override poral_is error handler.
35 error //=============================================================================================
35 error window.genericTimeoutHandler = function(portalException)
35 error {
35 error DEBUG.out("UserCheck::genericTimeoutHandler.");
35 error
35 error if ((portalException == undefined) || (portalException == null))
35 error {
35 error portalException = new PortalException();
35 error }
35 error
35 error // Assign action to the Ok button.
35 error // The event is added in order to get the exception, if it is set, that is set as the error message OK button attribute. see showPortalErrorMessage
35 error postErrorHandler = function(event)
35 error {
35 error // Check if redirected due to timeout.
35 error if (getCookie("isRedirectedDueTimeout") == "1")
35 error {
35 error // Delete the cookie to allow future errors.
35 error setCookie("isRedirectedDueTimeout", "0", 0);
35 error
35 error // TODO: Redirect to error page.
35 error return;
35 error }
35 error
35 error // Set cookie in order to prevent error loops.
35 error setCookie("isRedirectedDueTimeout", "1", 5*60);
35 error
35 error genericPostErrorHandler(event);
35 error
35 error // Reload the page.
35 error document.location.href=document.location.href;
35 error }
35 error
35 error // TODO: Get message from resource bundle.
35 error //var errMsg = "Your session has expired or timed out.\nYou will be redirected to the login page.\n\n";
35 error showPortalErrorMessage(portalException, postErrorHandler, true);
35 error }
35 error //=============================================================================================
35 error
35 error
35 error
35 error //=============================================================================================
35 error window.genericErrorHandler = function(portalException, callback)
35 error {
35 error DEBUG.out("UserCheck::genericErrorHandler.");
35 error if ((portalException == undefined) || (portalException == null))
35 error {
35 error portalException = new PortalException();
35 error }
35 error
35 error if (isNothingness(callback))
35 error {
35 error callback = new Callback();
35 error }
35 error
35 error // Assign action to the Ok button.
35 error // The event is added in order to get the exception, if it is set, that is set as the error message OK button attribute. see showPortalErrorMessage
35 error postErrorHandler = function(event)
35 error {
35 error genericPostErrorHandler(event);
35 error callback.call();
35 error // No reload of the page.
35 error }
35 error
35 error showPortalErrorMessage(portalException, postErrorHandler, true);
35 error return true; // This is required for the execption to stop from being passed to the browser.
35 error }
35 error //=============================================================================================
35 error
35 error
35 error
35 error //=============================================================================================
35 error window.genericPostErrorHandler = function(event)
35 error {
35 error DEBUG.out("UserCheck::genericPostErrorHandler.");
35 error // Just hide the error.
35 error hidePortalErrorMessage();
35 error }
35 error //=============================================================================================
35 error
35 error //=============================================================================================
35 error UserCheck.tools.sendErrorReport = function(userDesc, callback)
35 error {
35 error DEBUG.out("UserCheck.tools.sendErrorReport in.");
35 error
35 error var sAbsoluteURL = getURL("data/submitErrorReport");
35 error var report = encodeURIComponent(DEBUG.compileErrorReport());
35 error var userDesc = encodeURIComponent(userDesc);
35 error
35 error var sendErrorReportCallback = new Callback();
35 error sendErrorReportCallback.methodReference = UserCheck.tools.handleErrorReportResponse;
35 error sendErrorReportCallback.args.push(callback);
35 error
35 error // Send report with no error handlers.
35 error PORTAL_IS.AJAX_MGR.sendAsyncReq(sAbsoluteURL, "report="+report+"&userDesc="+userDesc, sendErrorReportCallback, null, null, "Sending of error report failed.");
35 error
35 error // Set error flag.
35 error PORTAL_IS.TOOLS.errorMsgShown = false;
35 error }
35 error //=============================================================================================
35 error
35 error //=============================================================================================
35 error UserCheck.tools.handleErrorReportResponse = function(xhrStatus, xhrResponse, callback)
35 error {
35 error DEBUG.out("UserCheck.tools.handleErrorReportResponse in.");
35 error
35 error // Set error flag.
35 error PORTAL_IS.TOOLS.errorMsgShown = false;
35 error
35 error if (isNothingness(callback))
35 error {
35 error callback = new Callback();
35 error }
35 error
35 error if (xhrStatus != 200)
35 error {
35 error // TODO: Handle error.
35 error DEBUG.out('Submitting error report failed. ('+xhrStatus+')', DEBUG.ERROR);
35 error callback.call();
35 error showPortalMessage("Sending of error report failed.");
35 error return;
35 error }
35 error
35 error callback.call();
35 error
35 error showPortalMessage("Error report was sent successfully.\nThank you for your support.", null, UserCheck.MESSAGE_TYPE.Confirmation);
35 error }
35 error //=============================================================================================
35 error
35 error //=============================================================================================
35 error UserCheck.tools.showErrorReport = function(callback)
35 error {
35 error DEBUG.out("UserCheck.tools.showErrorReport in.");
35 error
35 error // Create new callback with send report and store previous callback in it.
35 error submitCallback = new Callback();
35 error submitCallback.methodReference = DEBUG.sendErrorReport;
35 error submitCallback.args = [callback];
35 error
35 error // Create new callback for cancel.
35 error cancelCallback = new Callback();
35 error cancelCallback.methodReference = function()
35 error {
35 error // Clear error flag.
35 error PORTAL_IS.TOOLS.errorMsgShown = false;
35 error callback.call();
35 error };
35 error
35 error // Hide any opened boxes.
35 error PORTAL_IS.TOOLS.hideGeneralContainer();
35 error PORTAL_IS.TOOLS.hideDialog();
35 error hidePortalMessage();
35 error hidePortalErrorMessage();
35 error
35 error PORTAL_IS.TOOLS.showDialog( "Please describe the encountered problem in the text box below.",
35 error "NOTICE: The report might include personal information from your mail items.\nThe report will not include your credentials.",
35 error "I was trying to (e.g. review an email):\n\nWork flow which led to this error (e.g. access via email link):\n\nI am unable to:",
35 error "Report an error",
35 error submitCallback, cancelCallback, null, null, null, null, true);
35 error
35 error // Set error flag.
35 error PORTAL_IS.TOOLS.errorMsgShown = true;
35 error }
35 error //=============================================================================================
35 error
35 error
35 error //=============================================================================================
35 error
35 error
35 error //=============================================================================================
35 error
35 error DEBUG.showErrorReport = UserCheck.tools.showErrorReport;
35 error DEBUG.sendErrorReport = UserCheck.tools.sendErrorReport;
35 error
35 error UserCheck.tools.oTimeoutManager =
35 error {
35 error timerID: -1,
35 error startTimeoutTimer: function(duration, callback)
35 error {
35 error var milisecs = duration * 1000;
35 error if (milisecs > 2147483646)
35 error {
35 error
35 error milisecs = 2147483646;
35 error
35 error }
35 error DEBUG.out("UserCheck.tools.TimeoutManager: Starting timer for " + duration + " seconds.");
35 error window.TimeoutManagerCallback = callback;
35 error this.timerID = setTimeout("this.TimeoutManagerCallback();", milisecs);
35 error },
35 error stopTimeoutTimer: function()
35 error {
35 error clearTimeout(timerID);
35 error timerID = -1;
35 error }
35 error };
35 error
35 error UserCheck.DataObj = {};
35 error
35 error // TODO: This should be defined as an "interface" class and other view managers should implement it.
35 error
35 error // UC's view manager.
35 error window.UCViewManager = function()
35 error {
35 error this.lastRenderedCustomContentContainers = new Array();
35 error this.defaultContainer = 'portal_main_view';
35 error this.ignoreHashChange = false;
35 error this.wait = null;
35 error this.requestParams = null;
35 error
35 error // Hash to view mapping, enables us to set display another value than the actual view name.
35 error //==================================================================================================================
35 error this.hashViewMap = new Array();
35 error // Hash name View name
35 error //__________________________________________________________________________________________________________________
35 error this.hashViewMap["UserAction"] = "UserAction";
35 error this.hashViewMap["MainWithMenuView"] = "MainWithMenuView";
35 error this.hashViewMap["Menu"] = "Menu";
35 error this.hashViewMap["Logout"] = "Logout";
35 error this.hashViewMap["MainView"] = "MainView";
35 error this.hashViewMap["Error"] = "Error";
35 error
35 error // Get View name from Hash name.
35 error this.hash2View = function(hash)
35 error {
35 error var view = this.hashViewMap[hash];
35 error
35 error if (isNothingness(view))
35 error {
35 error view = "UserAction";
35 error }
35 error return view;
35 error }
35 error
35 error // Get Hash name from View name.
35 error this.view2Hash = function(view)
35 error {
35 error var hash = "UserAction";
35 error for (key in this.hashViewMap)
35 error {
35 error if (this.hashViewMap[key] == view)
35 error {
35 error var hash = key;
35 error }
35 error }
35 error return hash;
35 error }
35 error //==================================================================================================================
35 error
35 error // Initialize view manager.
35 error //=============================================================================================
35 error this.init = function()
35 error {
35 error DEBUG.out("UCViewManager::init");
35 error
35 error // Bind history change handler.
35 error $(window).bind('hashchange', viewManager.handleHistoryChange);
35 error
35 error // Check address bar's hash and set desired view if exists.
35 error var desiredView = this.parseHash().view;
35 error if (isNothingness(desiredView))
35 error {
35 error desiredView = "";
35 error }
35 error
35 error DEBUG.out("UCViewManager::init, desired view: [" + desiredView + "]");
35 error this.gotoNextView(desiredView);
35 error }
35 error //=============================================================================================
35 error
35 error
35 error
35 error // Handle history changes (back/reload).
35 error // Overriding default handling.
35 error //=============================================================================================
35 error this.handleHistoryChange = function(e, ui)
35 error {
35 error // In some cases the hash is changed and no view load is required, checking if so.
35 error if (!viewManager.ignoreHashChange && ui != undefined)
35 error {
35 error // Parse view from hash.
35 error var desiredView = viewManager.parseHash().view;
35 error DEBUG.out("UCViewManager::handleHistoryChange, desired view:" + desiredView);
35 error viewManager.gotoNextView(desiredView);
35 error }
35 error else
35 error {
35 error DEBUG.out("UCViewManager::handleHistoryChange, hash changed ignored.");
35 error }
35 error
35 error // Reset the ignore flag.
35 error viewManager.ignoreHashChange = false;
35 error }
35 error //=============================================================================================
35 error
35 error
35 error // Queries the server for next desired view and than call for rendering it.
35 error // Will call upon callback when done rendering the view.
35 error //=============================================================================================
35 error this.gotoNextView = function(requestedView, callback)
35 error {
35 error DEBUG.out("UCViewManager::gotoNextView");
35 error
35 error if (isNothingness(callback))
35 error {
35 error callback = new Callback();
35 error }
35 error
35 error // Check what is the next view.
35 error var sAbsoluteURL = PORTAL_IS.TOOLS.getURL("GetNextView");
35 error var parameters = (isNothingness(requestedView)) ? ("") : ("requestedView=" + encodeURIComponent(requestedView));
35 error
35 error var gotoNextViewCallback = new Callback();
35 error gotoNextViewCallback.methodReference = this.handleGotoNextViewRequest;
35 error gotoNextViewCallback.thisArgument = this;
35 error gotoNextViewCallback.args = [callback];
35 error
35 error PORTAL_IS.AJAX_MGR.sendAsyncReq(sAbsoluteURL, parameters, gotoNextViewCallback);
35 error }
35 error //=============================================================================================
35 error
35 error
35 error // Handle next view query.
35 error //=============================================================================================
35 error this.handleGotoNextViewRequest = function(xhrStatus, xhrResponse, callback)
35 error {
35 error DEBUG.out("UCViewManager::handleGotoNextViewRequest");
35 error
35 error if (isNothingness(callback))
35 error {
35 error callback = new Callback();
35 error }
35 error
35 error if (xhrStatus != 200)
35 error {
35 error DEBUG.out('Retreiving next view failed. ('+xhrStatus+')', DEBUG.ERROR);
35 error callback.call();
35 error return;
35 error }
35 error
35 error var nextViewJSONObj = JSON.parse(xhrResponse);
35 error var nextView = nextViewJSONObj.view;
35 error DEBUG.out("UCViewManager::handleGotoNextViewRequest, next view:" + nextView);
35 error
35 error // Extract the data (request params) from hash and relay it onto next hash.
35 error // As hash changing handler will be passed back to this method we set the Ignore flag to TRUE
35 error // and call for the gotoView method.
35 error viewManager.changeHash(nextView, viewManager.parseHash().data, true);
35 error
35 error viewManager.gotoView(nextView, callback);
35 error }
35 error //=============================================================================================
35 error
35 error
35 error // Get view contents (CSS, JS and HTML).
35 error // Will call upon callback when done rendering the view.
35 error //=============================================================================================
35 error this.gotoView = function(view, callback)
35 error {
35 error DEBUG.out("UCViewManager::gotoView view: ["+view+"]");
35 error
35 error if (callback == undefined)
35 error {
35 error callback = new Callback();
35 error }
35 error
35 error var hash = this.parseHash().view;
35 error var parameters = (hash == "") ? ("view="+encodeURIComponent(hash)) : ( "requestedView=" + encodeURIComponent(view) + "&view="+encodeURIComponent(hash) );
35 error
35 error sendAsynchronousRequest(PORTAL_IS.TOOLS.getURL("viewManager/GetViewData"),
35 error parameters,
35 error this.handleNewView,
35 error this,
35 error [callback]);
35 error }
35 error //=============================================================================================
35 error
35 error
35 error // Handle new view rendering.
35 error //=============================================================================================
35 error this.handleNewView = function(xhrStatus, xhrResponse, callback)
35 error {
35 error if (callback == undefined)
35 error {
35 error callback = new Callback();
35 error }
35 error
35 error if (xhrStatus != 200)
35 error {
35 error // TODO: Handle error.
35 error DEBUG.out('Retreiving view failed. ('+xhrStatus+')', DEBUG.ERROR);
35 error callback.call();
35 error return;
35 error }
35 error
35 error var newViewJSONObj = JSON.parse(xhrResponse);
35 error var newView = newViewJSONObj.view;
35 error DEBUG.out("UCViewManager::handleNewView, Parsed from JSON - view:" + newView);
35 error
35 error
35 error var useDefaultContainerId = true;
35 error var requiredContainerId = "";
35 error var requiredView = "";
35 error var requireSecureConnection = false;
35 error
35 error switch (newView)
35 error {
35 error default: // View will be rendered into main page view.
35 error useDefaultContainerId = true;
35 error requiredContainerId = this.defaultContainer;
35 error break;
35 error }
35 error
35 error // Check if in https, redirect if not.
35 error if ((requireSecureConnection) && (location.protocol.toLowerCase() == 'http:'))
35 error {
35 error newLocation = location.href.replace(/http:/i, "https:");
35 error location.href = newLocation;
35 error return;
35 error }
35 error
35 error var containerId = this.defaultContainer;
35 error if (!useDefaultContainerId)
35 error {
35 error containerId = requiredContainerId;
35 error }
35 error
35 error //var container = Ext.getCmp(containerId);
35 error var container = document.getElementById(containerId);
35 error
35 error if (container != undefined)
35 error {
35 error
35 error DEBUG.out('Render new view ('+newViewJSONObj.view+') into [' + (useDefaultContainerId ? "DefaultContainer" : requiredContainerId) + "].");
35 error
35 error // Render CSS. - Not needed, all CSS loads from one blob file.
35 error //evaluateCSS(newViewJSONObj.css, "");
35 error
35 error // Clear existing content.
35 error container.innerHTML = "";
35 error
35 error // If the html content is not empty, render it into a new pane.
35 error container.innerHTML = newViewJSONObj.html;
35 error
35 error // Render JavaScript Content.
35 error evaluateJavaScript(newViewJSONObj.javascript);
35 error
35 error }
35 error else if (requiredContainerId == this.defaultContainer)
35 error {
35 error
35 error DEBUG.out('Default view is missing and will be rendered...');
35 error this.renderDefaultView();
35 error this.handleNewView(xhrStatus, xhrResponse, callback);
35 error
35 error }
35 error else // The container is not present and needs to be rendered first.
35 error {
35 error
35 error DEBUG.out('Required view ('+requiredContainerId+') is missing and needs to be rendered first.');
35 error
35 error // Set the previous view results in a callback, it will be called when finished rendering of the login sequence page.
35 error var requiredViewCallback = new Callback();
35 error requiredViewCallback.methodReference = this.handleNewView;
35 error requiredViewCallback.thisArgument = this;
35 error requiredViewCallback.args = [200, xhrResponse]; // Set fake status and response.
35 error
35 error // Request specific view.
35 error this.gotoView(requiredView, requiredViewCallback);
35 error
35 error }
35 error
35 error // TODO: detect loops.
35 error
35 error
35 error // Done here, call the callback.
35 error //this.wait.hide();
35 error callback.call();
35 error }
35 error //=============================================================================================
35 error
35 error
35 error
35 error
35 error
35 error
35 error // CUSTOM CONTENT RELATED METHODS
35 error // _________________________________________________________________________________________________________________
35 error
35 error // Get the view's custom Content.
35 error //=============================================================================================
35 error this.getViewCustomContent = function(view)
35 error {
35 error this.clearLastCustomContent();
35 error
35 error var sAbsoluteURL = PORTAL_IS.TOOLS.getURL("JSONViewData/GetViewCustomContent");
35 error sendAsynchronousRequest(sAbsoluteURL,
35 error "view="+view,
35 error this.renderCustomContent,
35 error this,
35 error []);
35 error }
35 error //=============================================================================================
35 error
35 error
35 error // Render the custom content.
35 error //=============================================================================================
35 error this.renderCustomContent = function(xhrStatus, xhrResponse, callbackObj)
35 error {
35 error DEBUG.out('Render custom content.');
35 error callback = new Callback(callbackObj);
35 error
35 error if (xhrStatus != 200)
35 error {
35 error // TODO: Handle error.
35 error DEBUG.out('Retreiving custom content failed. ('+xhrStatus+')', DEBUG.ERROR);
35 error callback.call();
35 error return;
35 error }
35 error
35 error // The container Id is: "CustomContent_<VIEW NAME>_<RESOURCE KEY>".
35 error // For example: the "ISW" view and the resource key of "top" will be rendered into "CustomContent_ISW_top".
35 error
35 error var newCustomContentJSONObj = JSON.parse(xhrResponse);
35 error var keyArr = newCustomContentJSONObj.keyArr;
35 error var view = newCustomContentJSONObj.view
35 error
35 error // Override view.
35 error switch (view)
35 error {
35 error case "ICS": // No brake, group these views.
35 error case "Authentication":
35 error case "ISW":
35 error case "MultiChallenge":
35 error case "IswEntry":
35 error var usedView = "LoginSequencePage";
35 error break;
35 error
35 error default:
35 error var usedView = view;
35 error break;
35 error }
35 error
35 error // Iterate on each of the custom content object.
35 error var customContent, containerId, key;
35 error //for (var key in keyMap)
35 error for (var i=0; i<keyArr.length; i++)
35 error {
35 error key = keyArr[i][0];
35 error customContent = keyArr[i][1];
35 error containerId = "CustomContent_"+usedView+"_"+key;
35 error DEBUG.out('Render custom content: usedView:['+usedView+"] into:["+containerId+"]");
35 error this.evaluateCustomContent(customContent, containerId);
35 error this.lastRenderedCustomContentContainers.push(containerId);
35 error }
35 error
35 error // Call the callback.
35 error callback.call();
35 error }
35 error
35 error // Encapsulate conditional rendering of the custom content.
35 error this.evaluateCustomContent = function(customContent, containerId)
35 error {
35 error destinationRef = document.getElementById(containerId);
35 error if ( (destinationRef != null) && (destinationRef != undefined) )
35 error {
35 error evaluateHTMLContent(customContent, destinationRef);
35 error }
35 error }
35 error //=============================================================================================
35 error
35 error
35 error // Clear last rendered containers.
35 error //=============================================================================================
35 error this.clearLastCustomContent = function()
35 error {
35 error for (var containerIndex in this.lastRenderedCustomContentContainers)
35 error {
35 error this.evaluateCustomContent("&nbsp;", this.lastRenderedCustomContentContainers[containerIndex]);
35 error }
35 error
35 error this.lastRenderedCustomContentContainers = new Array();
35 error }
35 error //=============================================================================================
35 error
35 error // Render default view.
35 error //=============================================================================================
35 error this.renderDefaultView = function()
35 error {}
35 error //==================================================================================================================
35 error
35 error //==================================================================================================================
35 error this.logoutButtonHandler = function()
35 error {}
35 error //==================================================================================================================
35 error
35 error
35 error
35 error
35 error
35 error // DEPRECATED METHODS
35 error // _________________________________________________________________________________________________________________
35 error
35 error // DEPRECATED, use viewManager.gotoNextView instead.
35 error //==================================================================================================================
35 error this.gotoNextState = function(callback)
35 error {
35 error this.gotoNextView(null, callback);
35 error return;
35 error }
35 error //==================================================================================================================
35 error }
35 error
35 error // Extend ViewManager (Portal IS).
35 error UCViewManager.prototype = new ViewManager();
35 error window.viewManager = new UCViewManager();
35 error
35 error </script>
35 error
35 error <title>Check Point UserCheck</title>
35 error </head>
35 error
35 error <body class="usercheck_body_background_class" unselectable="on">
35 error <noscript>
35 error This portal requires browser which support JavaScript.<br>Please make sure that you are using an updated browser and that JavaScript is enabled. </noscript>
35 error <div id='portalErrorMessage' class="portalErrorMessageDivHide">
35 error
35 error <table cellpadding="0px" cellspacing="0px" class="portalErrorMessageTableContainer" width="100%">
35 error <tr>
35 error <td align="center">
35 error
35 error <table cellpadding="0px" cellspacing="0px" class="portalErrorMessageTable">
35 error
35 error <tr id="portalErrorMessage_title_container_row" class="portalMessage_title show" width="100%">
35 error <td id="portalErrorMessage_title_container" height="10px" valign="middle" align="left" colspan="2">&nbsp;</td>
35 error </tr>
35 error
35 error <tr>
35 error <td id="portalErrorMessage_container" align="left" style="padding: 10px;" colspan="2">&nbsp;</td>
35 error </tr>
35 error
35 error <tr>
35 error
35 error <td>
35 error <table cellpadding="0px" cellspacing="0px" width="100%"style=" padding: 10px;">
35 error <tr>
35 error <td id="portalMessage_error_report_container" align="left" valign="buttom" class="hide">
35 error <span id="portalMessage_error_report_link" onclick="DEBUG.showErrorReport();" class="portal_link" style="left: 10px;">
35 error Send error report </span>
35 error </td>
35 error <td id="portalMessage_error_button_container" align="right" height="10px;" valign="buttom">
35 error <button id="portalErrorMessage_button" class="portalErrorMessage_button" onclick="hidePortalErrorMessage();">
35 error OK </button>
35 error </td>
35 error </tr>
35 error </table>
35 error </td>
35 error
35 error </tr>
35 error
35 error </table>
35 error
35 error </td>
35 error </tr>
35 error </table>
35 error
35 error </div>
35 error
35 error
35 error <div id='portalMessage' class="portalMessageDivHide">
35 error
35 error <table cellpadding="0px" cellspacing="0px" class="portalMessageTableContainer" width="100%">
35 error <tr>
35 error <td align="center">
35 error
35 error <table cellpadding="0px" cellspacing="0px" class="portalMessageTable">
35 error
35 error <tr id="portalMessage_title_container_row" class="portalMessage_title show">
35 error <td id="portalMessage_title_container" class="portalMessage_title_td" valign="middle" align="left">
35 error &nbsp;
35 error </td>
35 error </tr>
35 error
35 error <tr>
35 error <td id="portalMessage_container" align="left" style="padding: 10px;">
35 error &nbsp;
35 error </td>
35 error </tr>
35 error
35 error <tr id="portalMessage_textarea_container_row" class="hide">
35 error <td id="portalMessage_textarea_container" align="left" style="padding: 10px;">
35 error </td>
35 error </tr>
35 error
35 error <tr id="portalMessage_validation_message_container_row" class="show">
35 error <td id="portalMessage_validation_message_container" align="left" class="portalMessage_validation_submessage" style="padding: 10px;">
35 error &nbsp;
35 error </td>
35 error </tr>
35 error
35 error <tr id="portalMessage_submessage_container_row" class="hide">
35 error <td id="portalMessage_submessage_container" align="left" class="portalMessage_submessage" style="padding: 10px;">
35 error &nbsp;
35 error </td>
35 error </tr>
35 error
35 error <tr>
35 error <td align="center" height="10px;" valign="buttom" style="padding: 10px;" colspan="2">
35 error <div id="portalMessage_ok_button_container" class="show" style="text-align: right;">
35 error <button id="portalMessage_button" class="portalMessage_button" onclick="hidePortalMessage();">
35 error OK </button>
35 error </div>
35 error
35 error <div id="portalMessage_bool_button_container" class="hide">
35 error <button id="portalMessage_yes_button" class="portalMessage_button" onclick="hidePortalMessage();">
35 error BUTTON.YES </button>
35 error &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
35 error <button id="portalMessage_no_button" class="portalMessage_button" onclick="hidePortalMessage();">
35 error BUTTON.NO </button>
35 error </div>
35 error
35 error <div id="portalMessage_submit_button_container" class="hide">
35 error <button id="portalMessage_submit_button" class="portalMessage_button" onclick="hidePortalMessage();">
35 error BUTTON.SUBMIT </button>
35 error &nbsp;&nbsp;&nbsp;
35 error <button id="portalMessage_cancel_button" class="portalMessage_button" onclick="hidePortalMessage();">
35 error Cancel </button>
35 error </div>
35 error </td>
35 error </tr>
35 error </table>
35 error
35 error </td>
35 error </tr>
35 error </table>
35 error
35 error </div>
35 error
35 error
35 error <div id='portalGeneralContainer' class="portalMessageDivHide">
35 error
35 error <table cellpadding="0px" cellspacing="0px" class="portalMessageTableContainer" width="100%">
35 error <tr>
35 error <td align="center">
35 error
35 error <table cellpadding="0px" cellspacing="0px" class="portalMessageTable">
35 error
35 error <tr id="portalGeneralContainer_title_container_row" class="portalMessage_title show" width="100%">
35 error <td id="portalGeneralContainer_title_container" height="10px" valign="middle" align="left">
35 error &nbsp;
35 error </td>
35 error </tr>
35 error
35 error <tr>
35 error <td id="portalGeneralContainer_container" align="left" style="padding: 10px;">
35 error &nbsp;
35 error </td>
35 error </tr>
35 error
35 error </table>
35 error
35 error </td>
35 error </tr>
35 error </table>
35 error
35 error </div>
35 error
35 error
35 error <div id='PortalErrorScreenShader' class="screenShaderHide">
35 error <table cellpadding="0px" cellspacing="0px" width="100%" height="100%">
35 error <tr>
35 error <td>&nbsp;</td>
35 error </tr>
35 error </table>
35 error </div>
35 error
35 error
35 error
35 error <div id='PortalScreenShader' class="screenShaderHide">
35 error <table cellpadding="0px" cellspacing="0px" width="100%" height="100%">
35 error <tr>
35 error <td>&nbsp;</td>
35 error </tr>
35 error </table>
35 error </div>
35 error
35 error
35 error <div id="portal_main_view" class="div_expanded" unselectable="on">
35 error <table height="100%" width="100%" border="0" cellpadding="0" cellspacing="0" class="">
35 error <tr>
35 error <td id="portal_center_div" valign="top" unselectable="on" class="usercheck_main_background_class">
35 error <div id="portal_top_pane_div" class="usercheck_header_class">
35 error
35 error <!--position: fixed; bottom: -1px; left: 50%; margin-left: -435px; -->
35 error
35 error <table width="100%" cellpadding="0" cellspacing="0" class="usercheck_header_table_class usercheck_content_table_class">
35 error <tr>
35 error <td class="usercheck_header_left_class" unselectable="on">
35 error </td>
35 error <td class="usercheck_header_center_class" unselectable="on">
35 error <div class="usercheck_page_title_class" id="usercheck_page_title" unselectable="on" >UserCheck</div>
35 error </td>
35 error <td id="usercheck_header_right_logo" class="usercheck_header_right_class" unselectable="on">
35 error <img class="usercheck_company_logo_class" id="usercheck_company_logo" ></img>
35 error </td>
35 error <td id="usercheck_header_right_empty" class="usercheck_header_right_empty_class" unselectable="on">
35 error </td>
35 error </tr>
35 error </table>
35 error </div>
35 error <div style="">&nbsp;</div><div style="">&nbsp;</div><div style="">&nbsp;</div>
35 error <div style="text-align: center;" unselectable="on">
35 error <table id="usercheck_content_table" cellpadding="0" cellspacing="0" class="usercheck_content_table_class">
35 error <tr>
35 error <td rowspan="3" valign="top" class="usercheck_message_icon_column"><div class="usercheck_message_icon_class" id="usercheck_img_div" unselectable="on">&nbsp;</div></td>
35 error <td><div id="usercheck_title_div" class="usercheck_title_class" unselectable="on">&nbsp;</div></td>
35 error </tr>
35 error <tr>
35 error <td><div id="usercheck_main_div" class="usercheck_message_class" unselectable="on">&nbsp;</div></td>
35 error </tr>
35 error <tr>
35 error <td><div id="usercheck_error_div" unselectable="on">&nbsp;</div></td>
35 error </tr>
35 error <tr>
35 error <td colspan="2" style="text-align: center;" unselectable="on">
35 error <table style="margin-right: -10px; width: 50%; float: right;"><tr><td>
35 error <center>
35 error <div id="usercheck_cancel_div" class="usercheck_ok_button_div_class">&nbsp;</div>
35 error </center>
35 error </td><td>
35 error <center>
35 error <div id="usercheck_ok_div" class="usercheck_ok_button_div_class">&nbsp;</div>
35 error </center>
35 error </td></tr></table>
35 error </td>
35 error </tr>
35 error </table></div>
35 error </td>
35 error </tr>
35 error <tr>
35 error <td id ="usercheck_footer_td" class="usercheck_footer_class usercheck_footer_height_class">
35 error <div id="portal_bottom_pane_div">
35 error
35 error <!--position: fixed; bottom: -1px; left: 50%; margin-left: -435px; -->
35 error
35 error <table id="footer_table_logo" cellpadding="0" cellspacing="0" class="usercheck_footer_table_class footer_no_logo">
35 error <tr>
35 error <td class="usercheck_footer_height_class">
35 error <div id="usercheck_language_selection_div" class="usercheck_lang_select_div_class" style="display: none;">
35 error Language: <select id="usercheck_language_selection" class="usercheck_lang_select_class" onchange="javascript:window.oUserAction.handleLanguageChange();">
35 error </select>
35 error </div>
35 error </td>
35 error </tr>
35 error </table> </div>
35 error </td>
35 error </tr>
35 error </table>
35 error </div>
35 error </body>
35 error
35 error
35 error <script type="text/javascript">
35 error
35 error //Continue the background image on IE6-7 graphics design.
35 error if(window.browserDetails.browserType == window.BrowserType.IE && window.browserDetails.browserVersion <= 7 && (document.documentMode === undefined || document.documentMode <= 7))
35 error {
35 error var footer_td = document.getElementById('usercheck_footer_td');
35 error footer_td.setAttribute("className", footer_td.getAttribute("className") + " usercheck_main_background_class");
35 error }
35 error
35 error UserCheck.DataObj.IID = "6562BAB3-CB54-35B8-C19D-29D4AE36E696";
35 error
35 error UserCheck.DataObj.frame = 0;
35 error
35 error
35 error /*this is a common object for PortalMain and PortalMainDlp. functions here should be empty */
35 error window.UserActionCommon = function()
35 error {
35 error this.DlpHttpLearning = function(adminMessage,HttpLearningEnabled)
35 error {
35 error
35 error }
35 error this.DlpHideCancelBtn = function(action)
35 error {
35 error
35 error }
35 error }
35 error
35 error window.oUserActionCommon = new window.UserActionCommon();
35 error
35 error
35 error var g_userID = "";
35 error var g_refreshFiles = false;
35 error
35 error window.UserAction = function()
35 error {
35 error this.incidentObject = {};
35 error this.textAreaText = "";
35 error
35 error this.getCorrectClass = function()
35 error {
35 error var correctClass = "class";
35 error
35 error //Choose the correct class attribute name (in IE6-7 we need "className" instead of "class") according to IE version - but check for compatibility first!
35 error if(window.browserDetails.browserType == window.BrowserType.IE && window.browserDetails.browserVersion <= 7 && document.documentMode === undefined)
35 error {
35 error correctClass = "className";
35 error }
35 error
35 error return correctClass;
35 error }
35 error
35 error // Initialize.
35 error //=============================================================================================
35 error this.init = function(cancelPage)
35 error {
35 error if (typeof cancelPage == 'undefined')
35 error {
35 error cancelPage = false;
35 error }
35 error var requestData = {
35 error IID: "-1",
35 error UserID: "",
35 error IsThinPortal: false,
35 error UserLang: "",
35 error GetCancelPage: cancelPage
35 error };
35 error
35 error requestData.IID = UserCheck.DataObj.IID;
35 error
35 error var cookie = getCookie('UserCheck_UserID');
35 error requestData.UserID = cookie != null ? cookie : "";
35 error
35 error requestData.IsThinPortal = window.isThinPortal === true ? true : false;
35 error
35 error var selectedLanguage = getCookie('UserCheck_Selected_Language');
35 error if(selectedLanguage == null)
35 error {
35 error selectedLanguage = "";
35 error }
35 error requestData.UserLang = selectedLanguage;
35 error
35 error var sAbsoluteURL = PORTAL_IS.TOOLS.getURL("data/GetUserCheckIncidentData");
35 error
35 error if (window.isThinPortal === true)
35 error {
35 error //Create a custom timeout handler for the thin portal.
35 error PORTAL_IS.AJAX_MGR.customTimeoutHandler = function()
35 error {
35 error window.location = "about:blank";
35 error }
35 error }
35 error
35 error sendAsynchronousRequest(sAbsoluteURL,
35 error flattenObject(requestData),
35 error this.handleUserCheckIncidentData,
35 error this,
35 error [new Callback()]);
35 error }
35 error
35 error //Toggles the button's state from enabled to disabled and vice versa.
35 error this.setButtonMode = function(buttonState, buttonID)
35 error {
35 error var button = document.getElementById(buttonID);
35 error if(button == null)
35 error return;
35 error
35 error var correctClass = window.oUserAction.getCorrectClass();
35 error
35 error if(buttonState)
35 error {
35 error //Enable the button.
35 error button.setAttribute(correctClass, "button");
35 error button.onclick = function(){ javascript:oUserAction.submitOK(); };
35 error
35 error button.style.cursor = "pointer";
35 error }
35 error else
35 error {
35 error //Disable the button.
35 error button.setAttribute(correctClass, "button buttonDisabled");
35 error button.onclick = null;
35 error
35 error button.style.cursor = "default";
35 error }
35 error }
35 error
35 error //Changes the button CSS class (support for IE6-8). buttonCLS is for additional classes to be added to the button.
35 error this.setButtonState = function(state, buttonID, buttonCLS)
35 error {
35 error if (!buttonID)
35 error {
35 error buttonID = 'UserCheck_OK_Button';
35 error buttonCLS = '';
35 error }
35 error
35 error var correctClass = window.oUserAction.getCorrectClass();
35 error
35 error var button = document.getElementById(buttonID);
35 error
35 error if(button.getAttribute(correctClass).indexOf("Disabled") == -1)
35 error {
35 error //The button is not disabled.
35 error button.setAttribute(correctClass, "button button" + state + " " + buttonCLS);
35 error }
35 error }
35 error
35 error this.handleUserCheckIncidentData = function(xhrStatus, xhrResponse, callback)
35 error {
35 error DEBUG.out("UserAction::handleUserCheckIncidentData");
35 error
35 error if (callback == undefined)
35 error {
35 error callback = new Callback();
35 error }
35 error
35 error if (xhrStatus != 200)
35 error {
35 error DEBUG.out('Retreiving UserCheck Incident Data failed. ('+xhrStatus+')', DEBUG.ERROR);
35 error callback.call();
35 error return;
35 error }
35 error
35 error this.incidentObject = JSON.parse(xhrResponse);
35 error var Languages = this.incidentObject.Languages;
35 error var UserCheckLogoID = this.incidentObject.UserCheckLogoID;
35 error var RedirectToAddr = this.incidentObject.RedirectToAddr;
35 error var AutoRedirect = this.incidentObject.AutoRedirect;
35 error var ExternalSystemURL = this.incidentObject.ExternalSystemURL;
35 error var Action = this.incidentObject.Action;
35 error var Variables = this.incidentObject.Variables;
35 error
35 error this.incidentObject.HasBeenCancelled = false;
35 error
35 error setCookie('UserCheck_UserID', this.incidentObject.UserID, 31556926);
35 error
35 error if (Variables['product'] != 'Threat Extraction')
35 error {
35 error if(AutoRedirect == true && RedirectToAddr != "")
35 error {
35 error if (window.isThinPortal === undefined)
35 error {
35 error //We have an address and auto redirect is true so redirect to that URL.
35 error // if (RedirectToAddr.indexOf('http://') != 0)
35 error if ((RedirectToAddr.indexOf('http://') != 0) &&(RedirectToAddr.indexOf('https://') != 0))
35 error RedirectToAddr = "http://" + RedirectToAddr;
35 error
35 error window.location = RedirectToAddr;
35 error }
35 error else
35 error window.location = "about:blank"; //No reason to redirect in the Thin Portal
35 error }
35 error }
35 error else
35 error {
35 error if (Action == "SCRUB-SUCCESS")
35 error {
35 error // in scrub success page, if not mobile or thin, give more space for the list of original files names and info
35 error if(window.browserDetails.isMobile() === false && window.isThinPortal === undefined)
35 error {
35 error var content_table = document.getElementById("usercheck_content_table");
35 error if (content_table != null)
35 error {
35 error content_table.style.tableLayout="auto";
35 error }
35 error
35 error var message_div = document.getElementById("usercheck_main_div");
35 error if (message_div != null)
35 error {
35 error message_div.style.minWidth="auto";
35 error message_div.style.maxWidth="700px";
35 error message_div.style.whiteSpace="nowrap";
35 error message_div.style.wordWrap="normal";
35 error message_div.style.overflow="auto";
35 error }
35 error }
35 error
35 error var requestData = {
35 error IID: "-1"
35 error };
35 error requestData.IID = UserCheck.DataObj.IID;
35 error var sAbsoluteURL = PORTAL_IS.TOOLS.getURL("data/GetScrubFiles");
35 error sendAsynchronousRequest(sAbsoluteURL,
35 error flattenObject(requestData),
35 error this.handleScrubbingFiles,
35 error this,
35 error [new Callback()]);
35 error }
35 error }
35 error
35 error if(ExternalSystemURL != "")
35 error //We have an external system address so redirect to that URL.
35 error // window.location = ExternalSystemURL + (this.incidentObject.ForwardParams == true ? "?IncidentID=" + UserCheck.DataObj.IID + "&UserID=" + this.incidentObject.UserID : "");
35 error if (this.incidentObject.ForwardParams == true)
35 error {
35 error window.location = ExternalSystemURL + "?IncidentID=" + UserCheck.DataObj.IID + "&UserID=" + this.incidentObject.UserID;
35 error }
35 error else
35 error {
35 error window.location = ExternalSystemURL;
35 error }
35 error
35 error
35 error
35 error this.prepareLanguageSelection();
35 error
35 error if(window.self !== window.top)
35 error {
35 error //We are inside a frame. Display small version of the portal and give link to a full version of the portal in new tab/window.
35 error
35 error var url = '<a href="' + window.location + "&frame=1" + '" target="_blank">';
35 error if (Action == "SCRUB-SUCCESS")
35 error {
35 error Action = "INFORM";
35 error }
35 error url += draw_img_tag(getURL("img/" + Action.toLowerCase() + ".png")) + '&nbsp;&nbsp;';
35 error url += Action == 'BLOCK' ? PORTAL_IS.L10N.L10N_Obj.getStr("UC.BLOCKED_IFRAME") : PORTAL_IS.L10N.L10N_Obj.getStr("UC.INFO_IFRAME");
35 error url += '</a>';
35 error
35 error document.body.innerHTML = url;
35 error document.body.style.backgroundImage = 'none';
35 error document.body.style.textAlign = 'center';
35 error document.body.style.verticalAlign = 'text-bottom';
35 error }
35 error
35 error //Decide which footer to display according to the action type (for Block and Limit we display footer without CP logo).
35 error if(window.isThinPortal === true)
35 error {
35 error var thin_table = document.getElementById('usercheck_thin_table');
35 error if(thin_table != null && Action != 'BLOCK' && Action != 'LIMIT')
35 error {
35 error var correctClass = window.oUserAction.getCorrectClass();
35 error
35 error thin_table.setAttribute(correctClass, "usercheck_main_mobile_background_class with_logo");
35 error }
35 error }
35 error else
35 error {
35 error var logo_footer = document.getElementById('footer_table_logo');
35 error if(logo_footer != null && Action != 'BLOCK' && Action != 'LIMIT')
35 error {
35 error var correctClass = window.oUserAction.getCorrectClass();
35 error
35 error logo_footer.setAttribute(correctClass, "usercheck_footer_table_class footer_logo");
35 error }
35 error }
35 error
35 error g_userID = this.incidentObject.UserID;
35 error
35 error if (Action == "SCRUB-SUCCESS")
35 error {
35 error Action = "INFORM";
35 error }
35 error //Draw incident image according to the incident type
35 error if(document.getElementById('usercheck_img_div') !== null)
35 error document.getElementById('usercheck_img_div').innerHTML = draw_img_tag(getURL("img/" + Action.toLowerCase() + ".png"));
35 error
35 error if(this.incidentObject.IsLogoConfigured)
35 error {
35 error //The page has a logo defined in the GUI - load it.
35 error
35 error //Desktop header.
35 error var header_right_logo = document.getElementById('usercheck_header_right_logo');
35 error if(header_right_logo != null)
35 error if(window.browserDetails.browserType == window.BrowserType.IE && window.browserDetails.browserVersion <= 7)
35 error header_right_logo.style.display = "block";
35 error else
35 error header_right_logo.style.display = "table-cell";
35 error
35 error var header_right_empty = document.getElementById('usercheck_header_right_empty');
35 error if(header_right_empty != null)
35 error header_right_empty.style.display = "none";
35 error
35 error //Mobile header.
35 error var mobile_header = document.getElementById('header_mobile_div');
35 error if(mobile_header != null)
35 error {
35 error mobile_header.style.display = "block";
35 error }
35 error
35 error //Company logo.
35 error var company_logo = document.getElementById('usercheck_company_logo');
35 error if(company_logo != null)
35 error company_logo.src = getURL("images/interactions/" + UserCheckLogoID + ".png");
35 error }
35 error else if(window.isThinPortal === true)
35 error {
35 error //If there is no logo defined, display the default logo in the thin portal.
35 error var company_logo = document.getElementById('usercheck_company_logo');
35 error if(company_logo != null)
35 error company_logo.src = getURL("img/cp_logo_mobile_thin.png");
35 error }
35 error
35 error //Start the timeout manager.
35 error UserCheck.tools.oTimeoutManager.startTimeoutTimer(this.incidentObject.Expiration - 15, this.handleTimeout);
35 error
35 error if (UserCheck.DataObj.GetSingleIncidentReview !== undefined && UserCheck.DataObj.GetSingleIncidentReview == 1)
35 error {
35 error window.singleIncident = new SingleIncident();
35 error singleIncident.init();
35 error }
35 error
35 error callback.call();
35 error }
35 error
35 error this.submitOK = function()
35 error {
35 error //This function determines if it is OK to proceed with sending a response if all validation criteria are met.
35 error
35 error //If we are in a Block action in thin portal, just redirect to about:blank.
35 error if (window.isThinPortal === true && window.oUserAction.incidentObject.Action === "BLOCK")
35 error {
35 error window.location = "about:blank";
35 error }
35 error
35 error if(document.getElementById('UserCheck_Textual_Input') != null)
35 error //Verify we have the real textarea!
35 error if(document.getElementById('UserCheck_Textual_Input').value !== undefined)
35 error //Unfocus the text-area.
35 error document.getElementById('UserCheck_Textual_Input').blur();
35 error
35 error if(!window.oUserAction.highlightInput())
35 error //There was some user input missing - don't continue.
35 error return;
35 error
35 error var cookie = getCookie('UserCheck_UserID');
35 error
35 error var requestData = {};
35 error
35 error requestData.IID = "-1";
35 error requestData.UserOption = "OK";
35 error
35 error requestData.UserID = cookie;
35 error requestData.IsReasonExist = true;
35 error if(document.getElementById('UserCheck_Textual_Input') != null)
35 error {
35 error var reason = document.getElementById('UserCheck_Textual_Input').value;
35 error
35 error //If the reason box is not found, there is nothing to enforce.
35 error if(reason === undefined)
35 error {
35 error reason = "";
35 error requestData.IsReasonExist = false;
35 error }
35 error else if(window.oUserAction.incidentObject.IsReasonEnforced === true && (reason.length == 0 || reason.length > 400))
35 error return;
35 error
35 error requestData.Reason = reason;
35 error }
35 error else
35 error {
35 error requestData.IsReasonExist = false;
35 error }
35 error
35 error //Sometimes the cookie is not written correctly, so used global user.
35 error if(requestData.UserID == null || requestData.UserID == "")
35 error requestData.UserID = g_userID;
35 error
35 error requestData.IID = UserCheck.DataObj.IID;
35 error
35 error var sAbsoluteURL = PORTAL_IS.TOOLS.getURL("data/GetUserCheckUserChoiceData");
35 error
35 error sendAsynchronousRequest(sAbsoluteURL,
35 error flattenObject(requestData),
35 error this.handleUserCheckChoiceData,
35 error this,
35 error [new Callback()]);
35 error }
35 error
35 error this.submitCancel = function()
35 error {
35 error if(window.oUserAction.incidentObject.CancelURL !== undefined && window.oUserAction.incidentObject.CancelURL !== "")
35 error {
35 error window.location = window.oUserAction.incidentObject.CancelURL;
35 error return;
35 error }
35 error else
35 error {
35 error if (window.isThinPortal == true)
35 error {
35 error window.location = "about:blank";
35 error return;
35 error }
35 error this.init(true);
35 error }
35 error }
35 error
35 error this.handleUserCheckChoiceData = function(xhrStatus, xhrResponse, callback)
35 error {
35 error try
35 error {
35 error window.external.OKButtonClickedResponseReceived('Done handling request');
35 error }
35 error catch(err)
35 error {
35 error //do nothing, this is probably the fat client
35 error }
35 error
35 error DEBUG.out("UserAction::handleUserCheckChoiceData");
35 error
35 error if (callback == undefined)
35 error {
35 error callback = new Callback();
35 error }
35 error
35 error if (xhrStatus != 200)
35 error {
35 error DEBUG.out('Retreiving UserCheck Incident Data failed. ('+xhrStatus+')', DEBUG.ERROR);
35 error callback.call();
35 error return;
35 error }
35 error
35 error var newViewJSONObj = JSON.parse(xhrResponse);
35 error
35 error var RedirectToAddr = newViewJSONObj.RedirectToAddr;
35 error if (window.oUserAction.incidentObject.Variables['product'] != 'Threat Extraction')
35 error {
35 error if(RedirectToAddr != "")
35 error {
35 error var frame = "0";
35 error
35 error frame = UserCheck.DataObj.frame;
35 error
35 error if(typeof frame === "undefined" || frame == "0" || frame == "")
35 error {
35 error if (window.isThinPortal === undefined)
35 error {
35 error //We have an address so redirect to that URL.
35 error if ((RedirectToAddr.indexOf('http://') != 0) &&(RedirectToAddr.indexOf('https://') != 0))
35 error RedirectToAddr = "http://" + RedirectToAddr;
35 error window.location = RedirectToAddr;
35 error }
35 error else
35 error window.location = "about:blank";
35 error }
35 error else
35 error {
35 error if (window.isThinPortal === undefined)
35 error {
35 error //We have an address so redirect to that URL in the parent frame.
35 error if ((RedirectToAddr.indexOf('http://') != 0) &&(RedirectToAddr.indexOf('https://') != 0))
35 error RedirectToAddr = "http://" + RedirectToAddr;
35 error
35 error window.opener.location = RedirectToAddr;
35 error }
35 error else
35 error {
35 error window.opener.location = "about:blank";
35 error }
35 error window.close();
35 error }
35 error }
35 error else
35 error {
35 error var frame = "0";
35 error frame = UserCheck.DataObj.frame;
35 error if(typeof frame === "undefined" || frame == "0" || frame == "")
35 error {
35 error if (window.isThinPortal == true)
35 error {
35 error window.location = "about:blank";
35 error }
35 error }
35 error else
35 error {
35 error if (window.isThinPortal == true)
35 error {
35 error window.opener.location = "about:blank";
35 error }
35 error window.close();
35 error }
35 error }
35 error }
35 error else
35 error {
35 error window.location.reload();
35 error }
35 error }
35 error this.handleUserReportWrongCategoryData = function(xhrStatus, xhrResponse, callback)
35 error {
35 error
35 error DEBUG.out("UserAction::handleUserLogData");
35 error
35 error
35 error
35 error
35 error }
35 error
35 error this.handleTimeout = function()
35 error {
35 error var requestData = {
35 error IID: "-1"
35 error };
35 error
35 error requestData.IID = UserCheck.DataObj.IID;
35 error
35 error var sAbsoluteURL = PORTAL_IS.TOOLS.getURL("ExtendTimeout");
35 error
35 error sendAsynchronousRequest(sAbsoluteURL,
35 error flattenObject(requestData),
35 error window.oUserAction.handleTimeoutExtension,
35 error this,
35 error [new Callback()]);
35 error }
35 error
35 error this.handleTimeoutExtension = function(xhrStatus, xhrResponse, callback)
35 error {
35 error DEBUG.out("UserAction::handleTimeoutExtension");
35 error
35 error if (callback == undefined)
35 error {
35 error callback = new Callback();
35 error }
35 error
35 error if (xhrStatus != 200)
35 error {
35 error if (window.isThinPortal === undefined)
35 error {
35 error DEBUG.out('Retreiving UserCheck Timeout Extension data failed. ('+xhrStatus+')', DEBUG.ERROR);
35 error callback.call();
35 error return;
35 error }
35 error else
35 error {
35 error window.location = "about:blank";
35 error return;
35 error }
35 error }
35 error var extensionObject = JSON.parse(xhrResponse);
35 error
35 error if(extensionObject.ReturnCode == "SUCCESS")
35 error {
35 error UserCheck.tools.oTimeoutManager.startTimeoutTimer(extensionObject.Expiration - 15, window.oUserAction.handleTimeout);
35 error }
35 error else
35 error {
35 error if(window.isThinPortal === undefined)
35 error {
35 error var button = document.getElementById('UserCheck_OK_Button');
35 error if(button !=null)
35 error button.style.display = "none";
35 error var select = document.getElementById('usercheck_language_selection');
35 error if(select != null)
35 error select.disabled = true;
35 error
35 error showPortalMessage(PORTAL_IS.L10N.L10N_Obj.getStr("TIMEOUT") + " <a href='" + window.oUserAction.incidentObject.RedirectToAddr + "'>" + PORTAL_IS.L10N.L10N_Obj.getStr("RETRY") + "</a>", null, PORTAL_IS.MESSAGE_TYPE.Display, true);
35 error }
35 error else
35 error {
35 error /* If we are in thin portal, redirect to about:blank
35 error so that client can catch it and act accordingly. */
35 error window.location = "about:blank";
35 error }
35 error }
35 error }
35 error
35 error //Prepare for language selection.
35 error this.prepareLanguageSelection = function()
35 error {
35 error var Languages = this.incidentObject.Languages;
35 error var prevSelectedLanguage = null;
35 error var userSelected = false;
35 error if (UserCheck.DataObj.Lang != "" && UserCheck.DataObj.Lang !== undefined)
35 error {
35 error prevSelectedLanguage = UserCheck.DataObj.Lang;
35 error userSelected = true;
35 error }
35 error else if (this.incidentObject.PreferredLang != "")
35 error {
35 error prevSelectedLanguage = this.incidentObject.PreferredLang;
35 error }
35 error else
35 error {
35 error prevSelectedLanguage = getCookie('UserCheck_Selected_Language');
35 error }
35 error var count = 0;
35 error
35 error //If there is no cookie, get the browser locale.
35 error if(prevSelectedLanguage == null)
35 error {
35 error var langArr = {};
35 error for(var Language in Languages)
35 error {
35 error langArr[Languages[Language].LanguageCode] = true;
35 error }
35 error
35 error prevSelectedLanguage = PORTAL_IS.L10N.L10N_Obj.selectLanguage(langArr);
35 error }
35 error
35 error if(document.getElementById('usercheck_language_selection_div') != null)
35 error {
35 error count = 0;
35 error for(var Language in Languages)
35 error {
35 error var select = document.getElementById('usercheck_language_selection');
35 error select.options[select.options.length] = new Option(Languages[Language].Language, Language, false, Language === prevSelectedLanguage);
35 error count++;
35 error }
35 error //Display language selection only if NOT in thin portal.
35 error if(count > 1 && window.isThinPortal === undefined)
35 error document.getElementById('usercheck_language_selection_div').style.display = "block";
35 error
35 error }
35 error this.handleLanguageChange(true, userSelected);
35 error }
35 error
35 error //Handles language change.
35 error this.handleLanguageChange = function(noReloadLang, userSelected)
35 error {
35 error var select = document.getElementById('usercheck_language_selection');
35 error var selectedLanguage = select.options[select.selectedIndex].value;
35 error if(noReloadLang === true)
35 error {
35 error //No need to load the language - if it is already loaded.
35 error this.asyncLanguageChangeCallback(userSelected);
35 error }
35 error else
35 error {
35 error //Reload language strings.
35 error PORTAL_IS.L10N.L10N_Obj.reloadLanguageTo(selectedLanguage, "en", this.asyncLanguageChangeCallback);
35 error }
35 error
35 error }
35 error
35 error this.checkBoxExists = function(adminMessage)
35 error {
35 error if(adminMessage.indexOf("UserCheck_Confirm_Checkbox") != -1)
35 error return true;
35 error
35 error return false;
35 error }
35 error
35 error this.textareaExists = function(adminMessage)
35 error {
35 error if(adminMessage.indexOf("UserCheck_Textual_Input") != -1)
35 error return true;
35 error
35 error return false;
35 error }
35 error
35 error this.asyncLanguageChangeCallback = function(userSelected)
35 error {
35 error if (userSelected === undefined)
35 error {
35 error userSelected = true;
35 error }
35 error var select = document.getElementById('usercheck_language_selection');
35 error var check = document.getElementById('UserCheck_Confirm_Checkbox');
35 error
35 error var selectedLanguage = "Default";
35 error if(select != null)
35 error selectedLanguage = select.options[select.selectedIndex].value;
35 error var checkBoxValue = check != null ? check.checked : false;
35 error
35 error //Save cookie for the selected language. Only if it is from a User Selection.
35 error if (userSelected)
35 error {
35 error setCookie('UserCheck_Selected_Language', selectedLanguage == "Default" ? "en" : selectedLanguage, 31556926, "/");
35 error var cookieVal = getCookie('UserCheck_UserID');
35 error
35 error var handleUpdateUserDataResponse = function(xhrStatus, xhrResponse, callback){
35 error var newURL = window.location.href;
35 error //alert("newURL '"+newURL+"'");
35 error var langLoc = newURL.indexOf("&Lang=");
35 error //alert("langLoc '"+langLoc+"'");
35 error if (langLoc != -1)
35 error {
35 error newURL = newURL.substring(0, langLoc);
35 error //alert("newURL '"+newURL+"'");
35 error }
35 error window.location = newURL;
35 error }
35 error
35 error sendAsynchronousRequest(getURL("UpdateUserData"),
35 error "Language="+encodeURIComponent(selectedLanguage) + "&IID="+encodeURIComponent(UserCheck.DataObj.IID)+"&UserID="+cookieVal,
35 error handleUpdateUserDataResponse,
35 error this,
35 error [new Callback()]);
35 error }
35 error else
35 error {
35 error
35 error //Keep this value globally for other funcs.
35 error window.oUserAction.incidentObject.SelectedLanguage = selectedLanguage;
35 error
35 error var Languages = window.oUserAction.incidentObject.Languages;
35 error var TitleText = Languages[selectedLanguage].TitleText;
35 error var AdminMessage = Languages[selectedLanguage].AdminMessage;
35 error var CancelMessage = Languages[selectedLanguage].CancelMessage;
35 error var OKButtonMessage = window.oUserAction.incidentObject.OKButtonMessage[selectedLanguage];
35 error var CancelButtonMessage = window.oUserAction.incidentObject.CancelButtonMessage[selectedLanguage];
35 error var SendButtonMessage = window.oUserAction.incidentObject.SendButtonMessage[selectedLanguage];
35 error var MiddleButtonMessage = window.oUserAction.incidentObject.MiddleButtonMessage[selectedLanguage];
35 error var HTTPLearningEnabled = window.oUserAction.incidentObject.HTTPLearningEnabled;
35 error var PageTitle = Languages[selectedLanguage].PageTitle;
35 error
35 error document.getElementById('usercheck_title_div').innerHTML = TitleText;
35 error
35 error if(window.oUserAction.incidentObject.HasBeenCancelled === undefined || window.oUserAction.incidentObject.HasBeenCancelled === false)
35 error {
35 error if (window.oUserAction.incidentObject.IncidentStatus == 0 || window.oUserAction.incidentObject.IncidentStatus == 2 || window.oUserAction.incidentObject.IncidentStatus == 8)//ok or cancel or ok_scrubbing
35 error {
35 error document.getElementById('usercheck_main_div').innerHTML = AdminMessage;
35 error }
35 error else if (window.oUserAction.incidentObject.IncidentStatus == 3)// sent
35 error {
35 error // if http learning is enabled on action succeded show the HTTP_LEARNING message
35 error if (HTTPLearningEnabled == true && window.oUserAction.incidentObject.RedirectToAddr != "")
35 error {
35 error var usercheck_main_div = document.getElementById('usercheck_main_div')
35 error if (usercheck_main_div != null)
35 error usercheck_main_div.innerHTML = "<p>" +PORTAL_IS.L10N.L10N_Obj.getStr("HTTP_LEARNING")+"</p>";
35 error }
35 error else // an SMTP message
35 error {
35 error document.getElementById('usercheck_main_div').innerHTML = AdminMessage;
35 error }
35 error }
35 error else if (window.oUserAction.incidentObject.IncidentStatus == 4)//discarded
35 error {
35 error document.getElementById('usercheck_main_div').innerHTML = AdminMessage;
35 error }
35 error else if (window.oUserAction.incidentObject.IncidentStatus == 5)//already sent
35 error {
35 error if (HTTPLearningEnabled == true && window.oUserAction.incidentObject.RedirectToAddr != "")
35 error {
35 error //if approved http and then refreshed the page
35 error var usercheck_main_div = document.getElementById('usercheck_main_div')
35 error if (usercheck_main_div != null)
35 error usercheck_main_div.innerHTML = "<p>" +PORTAL_IS.L10N.L10N_Obj.getStr("HTTP_LEARNING")+"</p>";
35 error }
35 error else
35 error {
35 error document.getElementById('usercheck_main_div').innerHTML = AdminMessage;
35 error var return_to_site_div = document.getElementById('usercheck_return_to_site_div')
35 error if (return_to_site_div != null)
35 error return_to_site_div.innerHTML = "<p style='color: #FF5000;font-weight: bold;'>" +PORTAL_IS.L10N.L10N_Obj.getStr("EMAIL_ALREADY_SENT") +"</p>";
35 error }
35 error }
35 error else if (window.oUserAction.incidentObject.IncidentStatus == 6)//already discarded
35 error {
35 error document.getElementById('usercheck_main_div').innerHTML = AdminMessage;
35 error var return_to_site_div = document.getElementById('usercheck_return_to_site_div')
35 error if (return_to_site_div != null)
35 error return_to_site_div.innerHTML = "<p style='color: #FF5000;font-weight: bold;'>" +PORTAL_IS.L10N.L10N_Obj.getStr("EMAIL_ALREADY_DISCARDED") +"</p>";
35 error }
35 error else
35 error {
35 error document.getElementById('usercheck_main_div').innerHTML = "<p>" + PORTAL_IS.L10N.L10N_Obj.getStr("UNKOWN_INCIDENT_STATUS") + "</p>" + window.oUserAction.incidentObject.IncidentStatus;
35 error }
35 error
35 error
35 error var btnDiv = document.getElementById('usercheck_ok_div');
35 error if (btnDiv != null)
35 error btnDiv.innerHTML = OKButtonMessage;
35 error btnDiv = document.getElementById('usercheck_cancel_div');
35 error if (btnDiv != null)
35 error btnDiv.innerHTML = CancelButtonMessage;
35 error btnDiv = document.getElementById('usercheck_send_div');
35 error // show the send button on SMTP (which is actually the send button) OR show it on inform action (which is actually OK button)
35 error if (btnDiv != null && (window.oUserAction.incidentObject.RedirectToAddr == "" || window.oUserAction.incidentObject.Action == "INFORM") )
35 error {
35 error // alert("setting usercheck_send_div");
35 error btnDiv.innerHTML = SendButtonMessage;
35 error }
35 error btnDiv = document.getElementById('usercheck_middle_div');
35 error if (btnDiv != null)
35 error {
35 error // alert("setting discard button div");
35 error btnDiv.innerHTML = MiddleButtonMessage;
35 error }
35 error var goBackDiv = document.getElementById('usercheck_return_to_site_div');
35 error if (goBackDiv)
35 error {
35 error // show return to site only when its http violation AND if the action is: sent or discarded or already sent or already discarded or cancelled.
35 error if (window.oUserAction.incidentObject.RedirectToAddr != "" && (window.oUserAction.incidentObject.IncidentStatus == 3 || window.oUserAction.incidentObject.IncidentStatus == 4 || window.oUserAction.incidentObject.IncidentStatus == 5 || window.oUserAction.incidentObject.IncidentStatus == 6 || window.oUserAction.incidentObject.IncidentStatus == 2))
35 error {
35 error goBackDiv.innerHTML = '<a href="' + window.oUserAction.incidentObject.RedirectToAddr + '">' + PORTAL_IS.L10N.L10N_Obj.getStr("RETURN_TO_SITE") + '</a>';
35 error }
35 error }
35 error }
35 error else
35 error document.getElementById('usercheck_main_div').innerHTML = CancelMessage;
35 error
35 error var page_title = document.getElementById('usercheck_page_title');
35 error if(page_title != null)
35 error page_title.innerHTML = PageTitle;
35 error
35 error var span = document.getElementById('UserCheck_OK_Button_span');
35 error if(span != null)
35 error span.innerHTML = PORTAL_IS.L10N.L10N_Obj.getStr('BUTTON.OK');
35 error
35 error span = document.getElementById('UserCheck_Cancel_Button_span');
35 error if(span != null)
35 error span.innerHTML = PORTAL_IS.L10N.L10N_Obj.getStr('BUTTON.CANCEL');
35 error
35 error span = document.getElementById('UserCheck_Send_Button_span');
35 error if(span != null)
35 error span.innerHTML = PORTAL_IS.L10N.L10N_Obj.getStr('BUTTON.SEND');
35 error span = document.getElementById('UserCheck_Middle_Button_span');
35 error if(span != null)
35 error {
35 error if (window.oUserAction.incidentObject.RedirectToAddr == "")
35 error span.innerHTML = PORTAL_IS.L10N.L10N_Obj.getStr('BUTTON.DISCARD');
35 error else
35 error span.innerHTML = PORTAL_IS.L10N.L10N_Obj.getStr("BUTTON.APPROVE");
35 error }
35 error
35 error var reportLink = document.getElementById('UserCheck_Wrong_Category');
35 error if(reportLink != null)
35 error {
35 error var correctClass = window.oUserAction.getCorrectClass();
35 error
35 error reportLink.setAttribute(correctClass, "usercheck_url_class");
35 error
35 error reportLink.onclick = function(e) { window.oUserAction.sendReport(); }
35 error }
35 error
35 error //Clear the error message when switching language.
35 error var errorElement = document.getElementById('usercheck_error_div');
35 error if(errorElement != null)
35 error errorElement.innerHTML = "&nbsp;";
35 error
35 error //Keep TextArea default text to disallow it as input.
35 error var textarea_element = null;
35 error
35 error if(window.oUserAction.textareaExists(AdminMessage))
35 error {
35 error textarea_element = document.getElementById('UserCheck_Textual_Input');
35 error //If the textarea is an incorrect element or length is correct, check passes.
35 error if(textarea_element.value === undefined)
35 error {
35 error //This element is not really our text area so we don't need it.
35 error textarea_element = null;
35 error }
35 error }
35 error
35 error if(textarea_element != null)
35 error {
35 error window.oUserAction.textAreaText = textarea_element.value;
35 error
35 error var correctClass = window.oUserAction.getCorrectClass();
35 error textarea_element.setAttribute(correctClass, "usercheck_message_class usercheck_textual_input_class usercheck_textual_input_class_required");
35 error
35 error textarea_element.onfocus = function() { window.oUserAction.clearRequiredInput(); };
35 error }
35 error //disable the approve button only on PortalMaindlp. on thin client approve button should always be enabled
35 error if (window.oUserAction.incidentObject.RedirectToAddr != "" && window.isThinPortal != true)
35 error {
35 error window.oUserActionCommon.DlpHttpLearning(AdminMessage,HTTPLearningEnabled);
35 error }
35 error // hiding the cancel button on infom on dlp only
35 error window.oUserActionCommon.DlpHideCancelBtn(window.oUserAction.incidentObject.Action);
35 error }
35 error }
35 error
35 error //Sends report for wrong category.
35 error this.sendReport = function()
35 error {
35 error var Variables = window.oUserAction.incidentObject.Variables;
35 error
35 error var resource = Variables['resource'] === undefined ? "" : Variables['resource'];
35 error var hmac = Variables['resource_hmac'] === undefined ? "" : Variables['resource_hmac'];
35 error var version = Variables['version'];
35 error var product = Variables['product'];
35 error
35 error //Get the application name. If this variable has been modified (added application icon for example), take the original.
35 error var appname = Variables['application_name_orig'];
35 error var malwareID = Variables['application_id'];
35 error if(appname === undefined)
35 error appname = Variables['application_name'];
35 error
35 error var base64UrlEncode = function(input) { return $.base64Encode(input).replace(/\+/g, '-').replace(/\//g, '_').replace(/\=/g, '') };
35 error
35 error //Encode to base64 URL form spec.
35 error appname = base64UrlEncode(appname);
35 error resource = base64UrlEncode(resource);
35 error
35 error //URL of the external URL
35 error var url = window.location.protocol + "//cws.checkpoint.com/MISCAT/miscat/1.0?resource=" + resource + "&hmac=" + hmac + "&appname=" + appname + "&version=" + version + "&product=" + product + "&malwareID=" + malwareID;
35 error
35 error //Display a portal messge indicating the action was successful. On mobile devices we use the built-in message display.
35 error if(window.browserDetails.isMobile())
35 error alert(PORTAL_IS.L10N.L10N_Obj.getStr("REPORT_SUCCESS"));
35 error else
35 error showPortalMessage('<table><tr><td>' + draw_img_tag_span(getURL("images/confirmation.png")) + '&nbsp;&nbsp;</td><td>' + PORTAL_IS.L10N.L10N_Obj.getStr("REPORT_SUCCESS") + '</td></tr></table>', null, PORTAL_IS.MESSAGE_TYPE.Confirmation, true, false);
35 error
35 error var img = new Image();
35 error img.src = url;
35 error
35 error var reportLink = document.getElementById('UserCheck_Wrong_Category');
35 error
35 error var correctClass = window.oUserAction.getCorrectClass();
35 error
35 error //Disable the link.
35 error reportLink.setAttribute(correctClass, "usercheck_url_class usercheck_disabled_url_class");
35 error
35 error //send log on wrong category
35 error var cookie = getCookie('UserCheck_UserID');
35 error
35 error var requestData = {};
35 error
35 error requestData.IID = "-1";
35 error requestData.UserOption = "LOG-WRONG-CATEGORY";
35 error requestData.UserID = cookie;
35 error requestData.IsReasonExist = false;
35 error
35 error
35 error //Sometimes the cookie is not written correctly, so used global user.
35 error if(requestData.UserID == null || requestData.UserID == "")
35 error requestData.UserID = g_userID;
35 error
35 error requestData.IID = UserCheck.DataObj.IID;
35 error
35 error var sAbsoluteURL = PORTAL_IS.TOOLS.getURL("data/GetUserCheckUserChoiceData");
35 error
35 error sendAsynchronousRequest(sAbsoluteURL,
35 error flattenObject(requestData),
35 error this.handleUserReportWrongCategoryData,
35 error this,
35 error [new Callback()]);
35 error
35 error //Nothing should happen on click from now on.
35 error reportLink.onclick = function() { };
35 error }
35 error
35 error this.handleReportTimeout = function()
35 error {
35 error var elem = document.getElementById('testID');
35 error document.getElementsByTagName('head')[0].removeChild(elem);
35 error }
35 error
35 error //Verifies the input of the user, including checkbox and textarea.
35 error this.highlightInput = function()
35 error {
35 error var checkbox_element = null;
35 error var textarea_element = null;
35 error var checkbox_ready = false;
35 error var textarea_ready = false;
35 error
35 error var AdminMessage = window.oUserAction.incidentObject.Languages[window.oUserAction.incidentObject.SelectedLanguage].AdminMessage;
35 error
35 error //If the checkbox exists (and it is a correct element), its value will determine the button status.
35 error if(window.oUserAction.incidentObject.IsCheckBoxEnforced == true && window.oUserAction.checkBoxExists(AdminMessage) == true && document.getElementById('UserCheck_Confirm_Checkbox').checked !== undefined)
35 error {
35 error checkbox_element = document.getElementById('UserCheck_Confirm_Checkbox');
35 error checkbox_ready = checkbox_element.checked;
35 error }
35 error else
35 error checkbox_ready = true;
35 error
35 error //If the reason textbox exists and is enforced, its value will determine the button status.
35 error if(window.oUserAction.incidentObject.IsReasonEnforced === true && window.oUserAction.textareaExists(AdminMessage))
35 error {
35 error textarea_element = document.getElementById('UserCheck_Textual_Input');
35 error
35 error //If the textarea is an incorrect element or length is correct, check passes.
35 error if(textarea_element.value === undefined)
35 error {
35 error textarea_ready = true;
35 error //This element is not really our text area so we don't need it.
35 error textarea_element = null;
35 error }
35 error else
35 error {
35 error if (textarea_element.value.length > 0 && textarea_element.value.length <= 400 && textarea_element.value != PORTAL_IS.L10N.L10N_Obj.getStr("ENTER_TEXT") && textarea_element.value != window.oUserAction.textAreaText)
35 error textarea_ready = true;
35 error else
35 error textarea_ready = false;
35 error }
35 error }
35 error else
35 error textarea_ready = true;
35 error
35 error var all_ready = checkbox_ready === true && textarea_ready === true;
35 error
35 error var correctClass = window.oUserAction.getCorrectClass();
35 error var elememt_to_scroll = null;
35 error
35 error if(checkbox_element != null)
35 error {
35 error
35 error checkbox_element.parentNode.parentNode.parentNode.parentNode.setAttribute(correctClass, (checkbox_ready ? "usercheck_red_no_highlight" : "usercheck_red_highlight" ));
35 error elememt_to_scroll = checkbox_ready ? elememt_to_scroll : checkbox_element.parentNode.parentNode.parentNode.parentNode;
35 error }
35 error
35 error if(textarea_element != null)
35 error {
35 error textarea_element.setAttribute(correctClass, "usercheck_message_class usercheck_textual_input_class " + (textarea_ready ? "usercheck_red_no_highlight" : "usercheck_red_highlight usercheck_textual_input_class_required" ));
35 error elememt_to_scroll = textarea_ready ? elememt_to_scroll : textarea_element;
35 error if(!textarea_ready)
35 error {
35 error if(window.oUserAction.textAreaText === "" || textarea_element.value !== window.oUserAction.textAreaText)
35 error {
35 error if(window.oUserAction.textAreaText != "")
35 error textarea_element.value = window.oUserAction.textAreaText;
35 error else
35 error textarea_element.value = PORTAL_IS.L10N.L10N_Obj.getStr("ENTER_TEXT");
35 error }
35 error textarea_element.onfocus = function() { window.oUserAction.clearRequiredInput(); };
35 error }
35 error }
35 error
35 error if(!textarea_ready && !checkbox_ready && checkbox_element!=null && textarea_element!=null)
35 error {
35 error if(checkbox_element.parentNode.parentNode.parentNode.parentNode.offsetTop > textarea_element.offsetTop)
35 error elememt_to_scroll = checkbox_element;
35 error
35 error }
35 error
35 error if(elememt_to_scroll!=null){
35 error elememt_to_scroll.scrollIntoView(false);
35 error var scrollableDiv = document.getElementById("usercheck_scrollable_div");
35 error if (scrollableDiv !== null)
35 error scrollableDiv.scrollLeft = 0;
35 error }
35 error
35 error var errorElement = document.getElementById('usercheck_error_div');
35 error if(errorElement != null)
35 error errorElement.innerHTML = all_ready ? "" : "<br/><span style='color: #FF0000;'>* " + PORTAL_IS.L10N.L10N_Obj.getStr("REQUIRED_FIELDS") + "</span>";
35 error
35 error return all_ready;
35 error }
35 error
35 error this.clearRequiredInput = function()
35 error {
35 error textarea_element = document.getElementById('UserCheck_Textual_Input');
35 error
35 error textarea_element.value = "";
35 error
35 error var correctClass = window.oUserAction.getCorrectClass();
35 error
35 error if(textarea_element.getAttribute(correctClass).indexOf("usercheck_red_highlight") !== -1)
35 error textarea_element.setAttribute(correctClass, "usercheck_message_class usercheck_textual_input_class usercheck_red_highlight");
35 error else
35 error textarea_element.setAttribute(correctClass, "usercheck_message_class usercheck_textual_input_class");
35 error
35 error textarea_element.onfocus = function() { };
35 error }
35 error
35 error this.sendMail = function()
35 error {
35 error DEBUG.out("UserAction::sendMail");
35 error this.last_action = 'sent';
35 error
35 error if(!window.oUserAction.highlightInput())
35 error //There was some user input missing - don't continue.
35 error return;
35 error
35 error var reason = "";
35 error if(document.getElementById('UserCheck_Textual_Input') != null)
35 error {
35 error reason = document.getElementById('UserCheck_Textual_Input').value;
35 error //If the reason box is not found, there is nothing to enforce.
35 error if(reason === undefined)
35 error {
35 error reason = "";
35 error }
35 error }
35 error
35 error
35 error var sendMailCallback = new Callback();
35 error sendMailCallback.methodReference = this.handleConfirmationData;
35 error sendMailCallback.thisArgument = this;
35 error sendMailCallback.args.push(new Callback());
35 error PORTAL_IS.AJAX_MGR.sendAsyncReq( getURL("EmailSend"),
35 error "mailId="+encodeURIComponent(UserCheck.DataObj.IID)+
35 error "&justification="+encodeURIComponent(reason)+"&action=DLP-CHOICE-ACTION-SEND",
35 error sendMailCallback,
35 error null,
35 error null,
35 error "Sending email failed.");
35 error
35 error
35 error }
35 error
35 error this.discardMail = function()
35 error {
35 error DEBUG.out("UserAction::deleteMail");
35 error this.last_action = 'delete';
35 error
35 error var sendMailCallback = new Callback();
35 error sendMailCallback.methodReference = this.handleConfirmationData;
35 error sendMailCallback.thisArgument = this;
35 error sendMailCallback.args.push(new Callback());
35 error PORTAL_IS.AJAX_MGR.sendAsyncReq( getURL("EmailSend"),
35 error "mailId="+encodeURIComponent(UserCheck.DataObj.IID)+
35 error "&justification="+encodeURIComponent("")+"&action=DLP-CHOICE-ACTION-DISCARD",
35 error sendMailCallback,
35 error null,
35 error null,
35 error "Sending email failed.");
35 error
35 error
35 error }
35 error
35 error this.handleConfirmationData = function(xhrStatus, xhrResponse, callback)
35 error {
35 error DEBUG.out("UserAction::handleConfirmationData ");
35 error if (callback == undefined)
35 error {
35 error callback = new Callback();
35 error }
35 error if (xhrStatus != 200)
35 error {
35 error // TODO: Handle error.
35 error DEBUG.out('Retreiving Single Incident Review Data failed. ('+xhrStatus+')', DEBUG.ERROR);
35 error callback.call();
35 error return;
35 error }
35 error var newViewJSONObj = JSON.parse(xhrResponse);
35 error var message = newViewJSONObj.message;
35 error var lastChanged = newViewJSONObj.lastChanged;
35 error var succeeded = newViewJSONObj.succeeded;
35 error if (lastChanged != -1 && lastChanged != 0)
35 error {
35 error //message += " ";
35 error //message += convertToGmt(lastChanged);
35 error //this.emailData.date = convertToGmt(lastChanged);
35 error }
35 error //@@NA add test if this is from Thin Portal and only then redirect to about:blank
35 error // window.location = "about:blank";
35 error if (succeeded)
35 error {
35 error var cookie = getCookie('UserCheck_UserID');
35 error var requestData = {};
35 error requestData.IID = "-1";
35 error requestData.UserID = cookie;
35 error requestData.IsReasonExist = true;
35 error requestData.Reason = "";
35 error requestData.UserOption = "SEND";
35 error if (newViewJSONObj.action == "DLP-CHOICE-ACTION-DISCARD")
35 error {
35 error requestData.UserOption = "DISCARD";
35 error }
35 error
35 error if (newViewJSONObj.action === undefined || newViewJSONObj.action != "DLP-CHOICE-ACTION-SEND")
35 error {
35 error requestData.IsReasonExist = false;
35 error }
35 error else
35 error {
35 error if(document.getElementById('UserCheck_Textual_Input') != null)
35 error {
35 error var reason = document.getElementById('UserCheck_Textual_Input').value;
35 error
35 error //If the reason box is not found, there is nothing to enforce.
35 error if(reason === undefined)
35 error {
35 error reason = "";
35 error requestData.IsReasonExist = false;
35 error }
35 error else if(window.oUserAction.incidentObject.IsReasonEnforced === true && (reason.length == 0 || reason.length > 400))
35 error return;
35 error
35 error requestData.Reason = reason;
35 error }
35 error else
35 error {
35 error requestData.IsReasonExist = false;
35 error }
35 error }
35 error //Sometimes the cookie is not written correctly, so used global user.
35 error if(requestData.UserID == null || requestData.UserID == "")
35 error requestData.UserID = g_userID;
35 error requestData.IID = UserCheck.DataObj.IID;
35 error
35 error var sAbsoluteURL = PORTAL_IS.TOOLS.getURL("data/GetUserCheckUserChoiceData");
35 error
35 error sendAsynchronousRequest(sAbsoluteURL,
35 error flattenObject(requestData),
35 error this.handleUserCheckChoiceData,
35 error this,
35 error [new Callback()]);
35 error }
35 error
35 error }
35 error
35 error this.goToBlank = function()
35 error {
35 error window.location = "about:blank";
35 error }
35 error
35 error this.ApproveHttp = function()
35 error {
35 error this.sendMail();
35 error }
35 error
35 error
35 error this.createScrubbingLinks = function(attachments, isExtended)
35 error {
35 error var scrub_files_out = "<ul style=\"list-style-type: none;padding: 0;\">";
35 error for (var i = 0;i<attachments.length;i++)
35 error {
35 error if (attachments[i].fileStatus == "FILE-STATUS-APPROVED-BY-TE" || attachments[i].fileStatus == "FILE-STATUS-AVAILABLE" || attachments[i].fileStatus == "FILE-STATUS-AVAILABLE-SUSPICIOUS")
35 error {
35 error var image = "images/confirmation.png";
35 error var comment = "";
35 error var toolTip = "Click to download";
35 error var removedParts = attachments[i].removedParts;
35 error if (isExtended == true)
35 error {
35 error if(removedParts != "")
35 error {
35 error removedParts = removedParts.replace(/\n/g,", ");
35 error comment = " contains " + removedParts;
35 error }
35 error else
35 error {
35 error comment = PORTAL_IS.L10N.L10N_Obj.getStr(attachments[i].scrubResult);
35 error }
35 error }
35 error scrub_files_out += "<li title=\"" + toolTip + "\"><img src=\"" + image + "\" width=\"20\" height=\"20\"/>&nbsp;&nbsp;" + "<a href=\"ScrubGetFile?IID="+UserCheck.DataObj.IID+"&fileID="+attachments[i].fileId+"\" TARGET=\"_blank\"><span style=\"font-weight:bold\">" + attachments[i].fileName + "</span></a> <span style=\"color:Red;font-size:80%\">" + comment + "</span></li>"
35 error }
35 error else
35 error {
35 error var description = "";
35 error var img = "";
35 error var toolTip = "";
35 error if (attachments[i].fileStatus == "FILE-STATUS-WAITING-FOR-TE")
35 error {
35 error g_refreshFiles = true;
35 error description = "scanning...";
35 error img = "img/loader.gif";
35 error toolTip = "Please wait while file is being scanned";
35 error }
35 error else if (attachments[i].fileStatus == "FILE-STATUS-BLOCKED-BY-TE")
35 error {
35 error description = "blocked - file is malicious";
35 error img = "img/block.png";
35 error toolTip = "File is malicious - blocked for download";
35 error }
35 error else if (attachments[i].fileStatus == "FILE-STATUS-BLOCKED-BY-POLICY")
35 error {
35 error description = "blocked according to company policy";
35 error img = "img/block.png";
35 error toolTip = "File is blocked for download according to company policy";
35 error }
35 error scrub_files_out += "<li title=\"" + toolTip + "\"><img src=\"" + img + "\" width=\"20\" height=\"20\"/>&nbsp;&nbsp;" + attachments[i].fileName + " <span style=\"color:LightSteelBlue\">(" + description + ")</span></li>"
35 error }
35 error }
35 error scrub_files_out += "</ul><div id=\"refresh_timer_div\"></div>";
35 error return scrub_files_out;
35 error }
35 error
35 error this.handleScrubbingFiles = function(xhrStatus, xhrResponse, callback)
35 error {
35 error if (callback == undefined)
35 error {
35 error callback = new Callback();
35 error }
35 error
35 error if (xhrStatus != 200)
35 error {
35 error DEBUG.out('Retreiving UserCheck Incident Data failed. ('+xhrStatus+')', DEBUG.ERROR);
35 error callback.call();
35 error return;
35 error }
35 error
35 error this.scrubbingResponse = JSON.parse(xhrResponse);
35 error
35 error var attachments = [];
35 error if( Object.prototype.toString.call( this.scrubbingResponse.data.attachments ) != '[object Array]' ) {
35 error attachments[0] = this.scrubbingResponse.data.attachments;
35 error }
35 error else
35 error {
35 error attachments = this.scrubbingResponse.data.attachments;
35 error }
35 error
35 error g_refreshFiles = false;
35 error var scrub_links_simple = document.getElementById('links_simple');
35 error if (scrub_links_simple != null)
35 error {
35 error if (scrub_links_simple.hasChildNodes())
35 error scrub_links_simple.removeChild(scrub_links_simple.childNodes[0]);
35 error var tmp = document.createElement("div");
35 error tmp.innerHTML = window.oUserAction.createScrubbingLinks(attachments, false);
35 error scrub_links_simple.appendChild(tmp);
35 error }
35 error
35 error var scrub_links_extended = document.getElementById('links_extended');
35 error if (scrub_links_extended != null)
35 error {
35 error if (scrub_links_extended.hasChildNodes())
35 error scrub_links_extended.removeChild(scrub_links_extended.childNodes[0]);
35 error var tmp = document.createElement("div");
35 error tmp.innerHTML = window.oUserAction.createScrubbingLinks(attachments, true);
35 error scrub_links_extended.appendChild(tmp);
35 error }
35 error
35 error var scrub_wait_massage = document.getElementById('scrub_wait_message');
35 error if (scrub_wait_massage != null)
35 error {
35 error scrub_wait_massage.style.display = 'none';
35 error }
35 error
35 error if (g_refreshFiles)
35 error {
35 error UserCheck.tools.oTimeoutManager.startTimeoutTimer(30, window.oUserAction.refreshScrubbingFiles);
35 error }
35 error callback.call();
35 error }
35 error
35 error this.refreshScrubbingFiles = function()
35 error {
35 error var requestData = {
35 error IID: "-1"
35 error };
35 error requestData.IID = UserCheck.DataObj.IID;
35 error var sAbsoluteURL = PORTAL_IS.TOOLS.getURL("data/GetScrubFiles");
35 error sendAsynchronousRequest(sAbsoluteURL,
35 error flattenObject(requestData),
35 error window.oUserAction.handleScrubbingFiles,
35 error this,
35 error [new Callback()]);
35 error }
35 error
35 error this.showOrHideRemovedPartsfromFiles = function(FileIndex)
35 error {
35 error var infoimg_element = document.getElementById('infoimg_' + FileIndex);
35 error var removed_parts_element = document.getElementById('removed_parts_' + FileIndex);
35 error
35 error if ( infoimg_element != null && removed_parts_element != null )
35 error {
35 error if( removed_parts_element.style.display === "none" )
35 error {
35 error infoimg_element.style.display = 'none';
35 error removed_parts_element.style.display = 'inline';
35 error }
35 error else
35 error {
35 error infoimg_element.style.display = "inline";
35 error removed_parts_element.style.display = 'none';
35 error }
35 error }
35 error }
35 error
35 error } //END: window.UserAction = function()
35 error
35 error window.oUserAction = new UserAction();
35 error oUserAction.init();
35 error
35 error </script>
35 error
35 error </html>
36 error If you need help, you may report this error at:
36 error <https://github.com/npm/npm/issues>
37 verbose exit [ 1, true ]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment