home *** CD-ROM | disk | FTP | other *** search
/ ftp.f-secure.com / 2014.06.ftp.f-secure.com.tar / ftp.f-secure.com / support / hotfix / fsav-server / FSAVSRV900_HF07.fsfix / iuwebui / forms / common / main.php < prev    next >
PHP Script  |  2010-09-07  |  25KB  |  565 lines

  1. <?php     include("commonphp.php"); ?>
  2.  
  3. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
  4. <html>
  5. <head>
  6. <title><?=fsloc("F-Secure Web Console")?></title>
  7.  
  8. <meta http-equiv="Cache-Control" content="no-cache" />
  9. <meta http-equiv="Pragma" content="no-cache" />
  10. <meta http-equiv="Expires" content="-1" />
  11.  
  12. <link rel=stylesheet href="/allowed/main.css" type="text/css">
  13. <link rel=stylesheet href="../css/nav-top.css" type="text/css">
  14. <link rel=stylesheet href="../css/widget.css" type="text/css">
  15.  
  16. <script type="text/javascript">
  17.     var djConfig = {
  18.         isDebug: false, 
  19.         bindEncoding: "utf-8", 
  20.         debugAtAllCosts: false
  21.     };
  22. </script>
  23. <script type="text/javascript" src="https://<?php echo $_SERVER[HTTP_HOST];?>/common/translator.js.php"></script>
  24.  
  25. <?php
  26.     $isGeckoLayoutEngine = strpos($_SERVER['HTTP_USER_AGENT'], 'Gecko')!==false;
  27. ?>
  28.  
  29. <style type="text/css">
  30. .mainContainer
  31. {
  32.     position: relative;
  33.     margin: 0;
  34.     width: 1000px;
  35.     height: 100%;
  36.     padding: 0px;
  37.     background-color: #f3f3f3;
  38. <?php
  39.     if ($isGeckoLayoutEngine == false)
  40.         echo "margin: 0 auto; /* center on everything else */"
  41. ?>
  42. }
  43.  
  44. .dojoDialog {
  45.   background: white;
  46.     border : 2px solid #999;
  47.     -moz-border-radius : 5px;
  48.     padding : 5px;
  49. }
  50. </style>
  51.  
  52. <script type="text/javascript" src="https://<?php echo $_SERVER[HTTP_HOST];?>/js/dojo.js"></script>
  53. <script language="JavaScript" type="text/javascript">
  54.     dojo.require("dojo.widget.LayoutContainer");
  55.     dojo.require("dojo.widget.ContentPane");
  56.     dojo.require("dojo.widget.LinkPane");
  57.     dojo.require("dojo.widget.SplitContainer");
  58.     dojo.require("dojo.widget.TabContainer");
  59.     dojo.require("dojo.widget.Tree");
  60.     dojo.require("dojo.widget.TreeNode");
  61.     dojo.hostenv.writeIncludes();
  62.     dojo.registerModulePath('fs', 'fs');
  63.     // 2. load the user defined button
  64.     dojo.require("fs.Button");
  65.     dojo.require("fs.ContentPane");
  66. </script>
  67. <script>
  68.     function init(e) 
  69.     {
  70. <?php
  71.         if(tnb_is_eval_expired(&$prod_name, &$days_left) == true || (strlen($prod_name) > 0 && $days_left >= 0))
  72.         {
  73.             echo 'EnableExtraDialog("/common/tnb_screen.php");';
  74.         }
  75.         
  76.         // Browsers based on Gecko layout engine have 'shaking' effect
  77.         // when layout container is placed in centered 
  78.         // element (<CENTER>, <DIV style='margin: 0 auto'>).
  79.         // Fix: setting up margins manually during initializing 
  80.         // and when resize.
  81.         if ($isGeckoLayoutEngine == true)
  82.         {
  83.             echo "
  84.                 UpdateMainContainerMargins();
  85.                 dojo.event.connect(window, 'onresize', 'UpdateMainContainerMargins');
  86.             ";
  87.         }
  88. ?>
  89.     }
  90.     dojo.addOnLoad(init);    
  91.  
  92.  
  93.     function UpdateMainContainerMargins()
  94.     {
  95.         var margin_left = (document.body.clientWidth-1000)/2;
  96.         if (margin_left < 0)
  97.             margin_left = 0;
  98.         var cont = window.document.getElementById('main_layout_container');    
  99.         cont.style.marginLeft = margin_left + 'px';
  100.     }
  101.     
  102.     function DisplayTreeContent()
  103.     {
  104.         this.update = function(message) 
  105.         {
  106.             beforeNodeChange();
  107.             var clickedTreeNode = message.node;
  108.             var docPane = dojo.widget.byId("docpane");
  109.             var file = clickedTreeNode.object;
  110.             if (!file)
  111.                 docPane.setContent(localized_strings.PageCannotBeLoaded);
  112.             else
  113.                 docPane.setUrl(file);
  114.         };
  115.     }
  116.  
  117.     var displayer = new DisplayTreeContent();
  118.  
  119.     var nodeSelectionTopic = dojo.event.topic.getTopic("nodeSelected");
  120.     nodeSelectionTopic.subscribe(displayer, "update");
  121.  
  122.     var ts = null;
  123.  
  124.     var page_can_be_submitted = false;
  125.     function beforeNodeChange()
  126.     {
  127.         if(!page_can_be_submitted || !dojo.widget.byId('mainTabContainer'))
  128.             return;
  129.         var active_tab = dojo.widget.byId('mainTabContainer').selectedChildWidget.widgetId;
  130.         if(active_tab == '')
  131.             return;
  132.         if("function" == eval('typeof(' + active_tab + '_is_closing)'))
  133.             eval(active_tab + '_is_closing()');
  134.     }
  135.     
  136.     function SetCanBeSubmitted()
  137.     {
  138.         page_can_be_submitted = true;
  139.     }
  140.     var ss_dialog_win = null;
  141.     function RefreshActiveContentPane()
  142.     {
  143.         if(!dojo.widget.byId('mainTabContainer'))
  144.               return;
  145.         var active_tab = dojo.widget.byId('mainTabContainer').selectedChild;
  146.         var pane = dojo.widget.byId(active_tab)
  147.         if(pane)
  148.             pane.refresh();
  149.         if(arguments.length > 0)
  150.             ss_dialog_win = arguments[0];
  151.     }
  152.  
  153.     var global_stats_refresh_interval = 60000; // miliseconds
  154.     var global_stats_last_updated = 0;
  155.     var global_extra_last_updated = 0;
  156.     function RefreshStatisticstPane(pane_name)
  157.     {
  158.         if(!dojo.widget.byId('mainTabContainer'))
  159.             return;
  160.         var interval =  (arguments.length == 1) ? global_stats_refresh_interval : arguments[1];
  161.         var active_tab = dojo.widget.byId('mainTabContainer').selectedChild;
  162. //        alert(arguments[1] + ' ' + interval);
  163.         if(pane_name != active_tab)
  164.         {
  165.             setTimeout('RefreshStatisticstPane("' + pane_name + '", ' + interval + ');', interval);
  166.             return;
  167.         }
  168.         
  169.         var currentTime = new Date();
  170.         if(currentTime.getTime() + 2000 - global_stats_last_updated < interval)
  171.             return;
  172.         global_stats_last_updated = currentTime.getTime();
  173.         
  174.         var pane = dojo.widget.byId(pane_name)
  175.         if(pane)
  176.             pane.refresh();
  177.     }
  178.     function RunRefreshStatisticstTimeout(pane_name)
  179.     {
  180.         setTimeout('RefreshStatisticstPane("' + pane_name + '");', global_stats_refresh_interval);
  181.         popup_unsaved_settings();
  182.     }    
  183.  
  184.     
  185.     var dialog_arg = '';
  186.     function SetDialogArg(arg)
  187.     {
  188.         dialog_arg = arg;
  189.     }
  190.     function GetDialogArg()    
  191.     {
  192.         return dialog_arg;
  193.     }
  194.     
  195.     function selectTreeNode(nodeName)
  196.     {
  197.         var ts = dojo.widget.byId("treeSelector");
  198.         if (ts.selectedNode)
  199.             ts.selectedNode.unMarkSelected();
  200.         var node = dojo.widget.byId(nodeName);
  201.             node.markSelected();
  202.         ts.selectedNode = node;
  203.  
  204.         var pane = dojo.widget.byId('docpane');
  205.         var file = node.object;
  206.         if (!file)
  207.         {
  208.             pane.setContent(localized_strings.PageCannotBeLoaded);
  209.         } 
  210.         else 
  211.         {
  212.             if(arguments.length > 1)
  213.                 file = file + '&' + arguments[1];
  214.             pane.setUrl(file);
  215.         }
  216.     }
  217.     function EnableBrowseDialog(params)
  218.     {
  219.         EnableWebUIDialog('browse_dialog', params);
  220.     }
  221.     function EnableWebUIDialog(dialog_name, params)
  222.     {
  223.         setCookie('WEBUIDIALOG', params);
  224.         var pane = dojo.widget.byId(dialog_name)
  225.         if(!pane)
  226.             return;
  227.         if(pane.href.length > 0)
  228.         {
  229.             var oldrefresh = pane.refreshOnShow;
  230.             pane.refreshOnShow = false;
  231.             pane.isLoaded = false;
  232.             pane.show();
  233.             pane.refreshOnShow = oldrefresh;
  234.         }
  235.         else
  236.         {
  237.             if(dialog_name == 'browse_dialog')
  238.                 pane.setUrl('/common/browse.php');
  239.             else if(dialog_name == 'mailboxes_dialog')
  240.                 pane.setUrl('/common/mailboxes.php');
  241.             else if(dialog_name == 'pfolders_dialog')
  242.                 pane.setUrl('/common/pfolders.php');
  243.             pane.show();
  244.         }
  245.      }
  246.  
  247.     var rdefs_tab_name = '';
  248.     function RestoreDefaultsHit()
  249.     {
  250.         if(arguments.length > 0)
  251.         {
  252.             rdefs_tab_name = arguments[0];
  253.             show_webui_message_box(localized_strings.Warning, localized_strings.RestoreDefaultsWarning, 0, 'RestoreDefaultsHit', 'Yes', 'No');
  254.         }
  255.         else if(rdefs_tab_name != '')
  256.         {
  257.             eval(rdefs_tab_name + '_restore_hit();');
  258.             rdefs_tab_name = '';
  259.         }
  260.                 setTimeout('check_unsaved_settings(def_attempts_unsaved_settings)', 1000);
  261.     }
  262.  
  263.  
  264.  
  265.     var def_attempts_unsaved_settings = 4;
  266.     var have_unsaved_settings = false;
  267.     function popup_unsaved_settings()
  268.     {
  269.         var page_div = dojo.byId('mainTabContainer');
  270.         if(!page_div){return;}
  271.         var divs = page_div.getElementsByTagName("div");
  272.         if(!divs){return;}
  273.         for (var i = 0; i < divs.length; i++)
  274.             if (hasClass(divs[i]) && divs[i].className == 'SettingsInformerCont') 
  275.                 divs[i].style.display = have_unsaved_settings ? 'block' : 'none';
  276.     }
  277.     function check_unsaved_settings(param)
  278.     {
  279.         dojo.io.bind({            
  280.             url: "/common/utility.php?changed_stngs",            
  281.             load: function(type, data, evt){
  282.                 have_unsaved_settings = (data == '1');
  283.                 popup_unsaved_settings();
  284.                 if(param && param > 0)
  285.                             setTimeout('check_unsaved_settings(' + (param-1) + ')', 300);
  286.             }, 
  287.             method: "post",
  288.             mimetype: "text/plain" 
  289.         });
  290.     }
  291.  
  292.     reset_unsaved_settings = function()
  293.     {
  294.         dojo.io.bind({            
  295.             url: "/common/utility.php?reset_stngs",            
  296.             load: function(type, data, evt){
  297.                         setTimeout('RefreshActiveContentPane()', 2000);
  298.             }, 
  299.             method: "post",
  300.             mimetype: "text/plain" 
  301.         });
  302.     }
  303. </script>
  304. </head>
  305.  
  306. <body>
  307.  
  308. <div dojoType="dialog" cacheContent='false' id="exclusions_dialog" bgColor="white" bgOpacity="0.5" toggle="plain" 
  309.     toggleDuration="250" executeScripts="true">
  310. </div>
  311. <div dojoType="dialog" cacheContent='false' id="lists_dialog" bgColor="white" bgOpacity="0.5" toggle="fade" 
  312.     toggleDuration="250" executeScripts="true">
  313. </div>
  314. <div dojoType="dialog" cacheContent='false' id="browse_dialog" bgColor="white" bgOpacity="0.5" toggle="fade" 
  315.     toggleDuration="250" executeScripts="true">
  316. </div>
  317. <div dojoType="dialog" cacheContent='false' id="mailboxes_dialog" bgColor="white" bgOpacity="0.5" toggle="fade" 
  318.     toggleDuration="250" executeScripts="true">
  319. </div>
  320. <div dojoType="dialog" cacheContent='false' id="pfolders_dialog" bgColor="white" bgOpacity="0.5" toggle="fade" 
  321.     toggleDuration="250" executeScripts="true">
  322. </div>
  323. <div dojoType="dialog" cacheContent='false' id="fileTypes_dialog" bgColor="white" bgOpacity="0.5" toggle="fade" 
  324.     toggleDuration="250" executeScripts="true">
  325. </div>
  326.  
  327. <?php    $ini_array = parse_ini_file('../../bin/webui.cnf', true); ?>
  328.  
  329. <?php    
  330.     $banner = "";
  331.     if (products_is_av4srv_installed() && products_is_av4mse_installed())
  332.     {
  333.         $banner = "banner_ess.png";
  334.     }
  335.     else if (products_is_av4mse_installed())
  336.     {
  337.         $banner = "banner_fsavmse.png";
  338.     }
  339.     else if (products_is_av4srv_installed())
  340.     {
  341.         $banner = "banner_fsavsrv.png";
  342.     }
  343.     if ($banner != "")
  344.     {
  345.         $banner = '<img src="../pics/layout/'.$banner.'" ISMAP usemap="#IHIP_NEW" alt="" border="0" class="banner"/>';
  346.     }
  347.  ?>
  348.  
  349.  
  350. <div dojoType="LayoutContainer" id="main_layout_container" layoutChildPriority='top-bottom' class="mainContainer">
  351.     <div dojoType="fs:ContentPane" layoutAlign="top" style="height: 80px; padding-top: 5px !important;">
  352.         <div class="topBar">
  353.             <?php echo($banner); ?>
  354.             <map name="IHIP_NEW">
  355.                 <area shape="rect" coords="15,5,160,75" href="javascript: void(window.open('http://www.f-secure.com/<?=$GLOBAL_LOC_LANGS[get_lang()];?>/'));">
  356.                 <area shape="default" nohref>
  357.             </map>
  358.         </div>
  359.     </div>
  360.     <div dojoType="LinkPane" layoutAlign="left" style="height: 100%; width: 200px; background-color: #f3f3f3; top: 83px !important;
  361.         padding-left: 10px; margin-top: 0px;" executeScripts="true" href="/common/tree.php?<?php 
  362.             if($ini_array[Extra][DontShowGettingStarted] == 1) echo'NoGetStarted'; 
  363.             
  364.             // Add extra params to prevent a browser from taking the menu from the cache when installing/uninstalling the products
  365.             if(products_is_av4srv_installed()) echo '&srv';
  366.             if(products_is_av4mse_installed()) echo '&mse'; 
  367.         ?>">
  368.     </div>
  369.     <div dojoType="fs:ContentPane" layoutAlign="client" style="background-color: white; margin: 0 0 0 0; padding: 0px; top: 83px !important"
  370.         id="docpane" executeScripts="true">
  371.     </div>
  372.     <div cacheContent='false' dojoType="fs:ContentPane" id="session_reporter" bgColor="white"cacheContent='false'
  373.         executeScripts="true" href="/common/session_reporter.php?stats_page" onDownloadStart="arguments[0].preventDefault()">
  374.     </div>
  375.  
  376.     <span class="lt"><!--do not delete - for strict xhtml validation--></span>
  377.     <span class="rt"><!--do not delete - for strict xhtml validation--></span>
  378.     <span class="lb"><!--do not delete - for strict xhtml validation--></span>
  379.     <span class="rb"><!--do not delete - for strict xhtml validation--></span>
  380.     <span class="page-l"><!--do not delete - for strict xhtml validation--></span>
  381.     <span class="page-r"><!--do not delete - for strict xhtml validation--></span>
  382.     <span class="page-t"><!--do not delete - for strict xhtml validation--></span>
  383.     <span class="page-b"><!--do not delete - for strict xhtml validation--></span>
  384.  
  385.     <div dojoType="fs:ContentPane" id="footer" layoutAlign="bottom">
  386.             <span class="t" style="width: 982px !important;"><!--do not delete - for strict xhtml validation--></span>
  387.             <p>© 2010 <a id="main: f-secure" href="javascript: void(window.open('http://www.f-secure.com/<?=$GLOBAL_LOC_LANGS[get_lang()];?>/'))">F-Secure Corporation</a><a id="main: logout" class="main: pti tagline" href="javascript: void(window.open('http://www.f-secure.com/<?=$GLOBAL_LOC_LANGS[get_lang()];?>/about-us/company/brand.html'))">Protecting the irreplaceable</a></p>
  388.             <ul>
  389.                 <li><a id="main: security center" href="javascript: void(window.open('http://www.f-secure.com/<?=$GLOBAL_LOC_LANGS[get_lang()];?>/security/'))" ><?=fsloc('Security Center')?></a></li>
  390.                 <li><a id="main: webclub" href="javascript: void(window.open('http://www.f-secure.com/<?=$GLOBAL_LOC_LANGS[get_lang()];?>/downloads/product-updates/'))" ><?=fsloc('Web Club')?></a></li>
  391.                 <li><a id="main: support" href="javascript: void(window.open('http://www.f-secure.com/<?=$GLOBAL_LOC_LANGS[get_lang()];?>/support/business/product-support/'))" ><?=fsloc('Product Support')?></a></li>
  392.                 <li><a id="main: about" href="javascript:;" onclick="EnableExtraDialog('/common/about.php')" ><?=fsloc('About')?></a></li>
  393.                 <li><a id="main: logout" href="javascript:;" onClick="EnableExtraDialog('/common/logout.php');" class="logout" title="<?=fsloc('Click here to log out and end your session')?>"><b><?=fsloc('Log out')?></b></a></li>
  394.             </ul>
  395.     </div>
  396.     <div style="position: absolute; bottom: 18px; left: 0; background-image:url(/allowed/page-left.gif); height: 17px; width: 9px;"></div>            
  397.     <div style="position: absolute; bottom: 18px; right: 0; background-image:url(/allowed/page-right.gif); height: 17px; width: 9px;"></div>            
  398. </div>
  399. </body>
  400. </html>
  401.  
  402.  
  403. <script>
  404.     var av4srvHelp = 'http://www.f-secure.com/<?=$GLOBAL_LOC_LANGS[get_lang()];?>/downloads/documentation/online-help/avsrv/900/frameset.html?';
  405.     var ProjectHelpIDs = new Array();
  406.     
  407.     function FillProjectHelpIDs()
  408.     {
  409.         if(ProjectHelpIDs.length == 0) 
  410.         {
  411.             var is_av4mse = new Boolean(<?php if(products_is_av4mse_installed()) echo "1"; else echo "0"; ?>);
  412.             var is_av4srv = new Boolean(<?php if(products_is_av4srv_installed()) echo "1"; else echo "0"; ?>);
  413.             var is_both = (is_av4mse == true) && (is_av4srv == true);
  414.         
  415.             // Home pages
  416.             if(is_both == true || is_av4mse == true)
  417.             {
  418.                 ProjectHelpIDs.push(new Array('tabHomeGetStarted', av4mseHelp + 'av4ex_local-admin3.html'));
  419.                 ProjectHelpIDs.push(new Array('tabHomeSummary', av4mseHelp + 'av4ex_local-admin4.html'));
  420.                 ProjectHelpIDs.push(new Array('tabHomeServices', av4mseHelp + 'av4ex_local-admin8.html'));
  421.                 ProjectHelpIDs.push(new Array('tabHomeVirusStats', av4mseHelp + 'av4ex_local-admin9.html'));
  422.             }
  423.             else
  424.             {
  425.                 ProjectHelpIDs.push(new Array('tabHomeGetStarted', av4srvHelp + 'getting_started/concepts/getting_started.html'));
  426.                 ProjectHelpIDs.push(new Array('tabHomeSummary', av4srvHelp + 'getting_started/concepts/getting_started.html'));
  427.                 ProjectHelpIDs.push(new Array('tabHomeServices', av4srvHelp + 'getting_started/concepts/getting_started.html'));
  428.             }
  429.  
  430.             // Automatic Updates and General pages
  431.             if(is_both == true || is_av4mse == true)
  432.             {
  433.                 ProjectHelpIDs.push(new Array('tabAUAStatus', av4mseHelp + 'av4ex_local-admin55.html'));
  434.                 ProjectHelpIDs.push(new Array('tabAUADownloads', av4mseHelp + 'av4ex_local-admin56.html'));
  435.                 ProjectHelpIDs.push(new Array('tabAUAGeneral', av4mseHelp + 'av4ex_local-admin58.html'));
  436.                 ProjectHelpIDs.push(new Array('tabAUAPM', av4mseHelp + 'av4ex_local-admin59.html'));
  437.                 ProjectHelpIDs.push(new Array('tabFSMAStatus', av4mseHelp + 'av4ex_local-admin66.html'));
  438.                 ProjectHelpIDs.push(new Array('tabFSMAManagement', av4mseHelp + 'av4ex_local-admin69.html'));
  439.                 ProjectHelpIDs.push(new Array('tabFSMAAlerting', av4mseHelp + 'av4ex_local-admin72.html'));
  440.                 ProjectHelpIDs.push(new Array('tabFSMAWebui', av4mseHelp + 'av4ex_local-admin73.html'));
  441.                 ProjectHelpIDs.push(new Array('tabFSMANotifications', av4mseHelp + 'av4ex_local-admin74.html'));
  442.                 ProjectHelpIDs.push(new Array('tabFSMANetwork', av4mseHelp + 'av4ex_local-admin67.html'));
  443.                 ProjectHelpIDs.push(new Array('tabFSMASamples', av4mseHelp + 'av4ex_local-admin78.html'));
  444.                 ProjectHelpIDs.push(new Array('tabFSMAMatchLists', av4mseHelp + 'av4ex_local-admin76.html'));
  445.                 ProjectHelpIDs.push(new Array('tabFSMATemplates', av4mseHelp + 'av4ex_local-admin77.html'));
  446.                 ProjectHelpIDs.push(new Array('tabGetStartedDomains', av4mseHelp + 'av4ex_local-admin67.html'));
  447.                 ProjectHelpIDs.push(new Array('tabGetStartedAlerts', av4mseHelp + 'av4ex_app_smtp-alerts3.html'));
  448.                 ProjectHelpIDs.push(new Array('tabGetStartedUpdates', av4mseHelp + 'av4ex_virus-definition-databases4.html'));
  449.             }
  450.             else
  451.             {
  452.                 ProjectHelpIDs.push(new Array('tabAUAStatus', av4srvHelp + 'automatic_updates/tasks/status.html'));
  453.                 ProjectHelpIDs.push(new Array('tabAUADownloads', av4srvHelp + 'automatic_updates/concepts/aua.html'));
  454.                 ProjectHelpIDs.push(new Array('tabAUAGeneral', av4srvHelp + 'automatic_updates/tasks/settings.html'));
  455.                 ProjectHelpIDs.push(new Array('tabAUAPM', av4srvHelp + 'central_management/tasks/add_a_pm_proxy_server.html'));
  456.                 ProjectHelpIDs.push(new Array('tabFSMAStatus', av4srvHelp + 'getting_started/concepts/getting_started.html'));
  457.                 ProjectHelpIDs.push(new Array('tabFSMAManagement', av4srvHelp + 'getting_started/concepts/getting_started.html'));
  458.                 ProjectHelpIDs.push(new Array('tabFSMAAlerting', av4srvHelp + 'getting_started/concepts/getting_started.html'));
  459.                 ProjectHelpIDs.push(new Array('tabFSMAWebui', av4srvHelp + 'getting_started/concepts/getting_started.html'));
  460.                 ProjectHelpIDs.push(new Array('tabFSMANotifications', av4srvHelp + 'getting_started/concepts/getting_started.html'));
  461.                 ProjectHelpIDs.push(new Array('tabFSMANetwork', av4srvHelp + 'getting_started/concepts/getting_started.html'));
  462.                 ProjectHelpIDs.push(new Array('tabFSMASamples', av4srvHelp + 'getting_started/concepts/getting_started.html'));
  463.                 ProjectHelpIDs.push(new Array('tabGetStartedUpdates', av4srvHelp + 'automatic_updates/concepts/aua.html'));
  464.             }
  465.  
  466.  
  467.  
  468.             if(is_av4mse == true)
  469.             {
  470.                 ProjectHelpIDs.push(new Array('tabTransportStatus', av4mseHelp + 'av4ex_local-admin11.html')); 
  471.                 ProjectHelpIDs.push(new Array('tabTransportInboundAttachmentFiltering', av4mseHelp + 'av4ex_local-admin13.html')); 
  472.                 ProjectHelpIDs.push(new Array('tabTransportOutboundAttachmentFiltering', av4mseHelp + 'av4ex_local-admin13.html')); 
  473.                 ProjectHelpIDs.push(new Array('tabTransportInternalAttachmentFiltering', av4mseHelp + 'av4ex_local-admin13.html')); 
  474.                 ProjectHelpIDs.push(new Array('tabTransportInboundVirusScanning', av4mseHelp + 'av4ex_local-admin14.html')); 
  475.                 ProjectHelpIDs.push(new Array('tabTransportOutboundVirusScanning', av4mseHelp + 'av4ex_local-admin14.html')); 
  476.                 ProjectHelpIDs.push(new Array('tabTransportInternalVirusScanning', av4mseHelp + 'av4ex_local-admin14.html')); 
  477.                 ProjectHelpIDs.push(new Array('tabTransportInboundGraywareScanning', av4mseHelp + 'av4ex_local-admin15.html')); 
  478.                 ProjectHelpIDs.push(new Array('tabTransportOutboundGraywareScanning', av4mseHelp + 'av4ex_local-admin15.html')); 
  479.                 ProjectHelpIDs.push(new Array('tabTransportInternalGraywareScanning', av4mseHelp + 'av4ex_local-admin15.html')); 
  480.                 ProjectHelpIDs.push(new Array('tabTransportInboundArchiveProcessing', av4mseHelp + 'av4ex_local-admin16.html')); 
  481.                 ProjectHelpIDs.push(new Array('tabTransportOutboundArchiveProcessing', av4mseHelp + 'av4ex_local-admin16.html'));
  482.                 ProjectHelpIDs.push(new Array('tabTransportInternalArchiveProcessing', av4mseHelp + 'av4ex_local-admin16.html')); 
  483.                 ProjectHelpIDs.push(new Array('tabTransportInboundContentFiltering', av4mseHelp + 'av4ex_local-admin17.html')); 
  484.                 ProjectHelpIDs.push(new Array('tabTransportOutboundContentFiltering', av4mseHelp + 'av4ex_local-admin17.html'));
  485.                 ProjectHelpIDs.push(new Array('tabTransportInternalContentFiltering', av4mseHelp + 'av4ex_local-admin17.html'));
  486.                 ProjectHelpIDs.push(new Array('tabAntispamStatus', av4mseHelp + 'av4ex_local-admin43.html')); 
  487.                 ProjectHelpIDs.push(new Array('tabAntispamOptions', av4mseHelp + 'avgw_spam4.html'));
  488.                 ProjectHelpIDs.push(new Array('tabTransportInboundSecurityOptions', av4mseHelp + 'av4ex_local-admin19.html'));
  489.                 ProjectHelpIDs.push(new Array('tabTransportOutboundSecurityOptions', av4mseHelp + 'av4ex_local-admin19.html'));
  490.                 ProjectHelpIDs.push(new Array('tabTransportInternalSecurityOptions', av4mseHelp + 'av4ex_local-admin19.html'));
  491.                 ProjectHelpIDs.push(new Array('tabStorageStatus', av4mseHelp + 'av4ex_local-admin20.html'));
  492.                 ProjectHelpIDs.push(new Array('tabStorageRealtimeGeneral', av4mseHelp + 'av4ex_local-admin23.html'));
  493.                 ProjectHelpIDs.push(new Array('tabStorageRealtimeVirusScanning', av4mseHelp + 'av4ex_local-admin24.html'));
  494.                 ProjectHelpIDs.push(new Array('tabStorageRealtimeGraywareScanning', av4mseHelp + 'av4ex_local-admin25.html')); 
  495.                 ProjectHelpIDs.push(new Array('tabStorageRealtimeArchiveProcessing', av4mseHelp + 'av4ex_local-admin26.html'));
  496.                 ProjectHelpIDs.push(new Array('tabStorageManualStatus', av4mseHelp + 'av4ex_local-admin27.html'));
  497.                 ProjectHelpIDs.push(new Array('tabStorageManualGeneral', av4mseHelp + 'av4ex_local-admin30.html'));
  498.                 ProjectHelpIDs.push(new Array('tabStorageManualStripping', av4mseHelp + 'av4ex_local-admin31.html'));
  499.                 ProjectHelpIDs.push(new Array('tabStorageManualVirusScanning', av4mseHelp + 'av4ex_local-admin32.html')); 
  500.                 ProjectHelpIDs.push(new Array('tabStorageManualGraywareScanning', av4mseHelp + 'av4ex_local-admin33.html'));
  501.                 ProjectHelpIDs.push(new Array('tabStorageManualArchiveProcessing', av4mseHelp + 'av4ex_local-admin34.html'));
  502.                 ProjectHelpIDs.push(new Array('tabScheduledScanning', av4mseHelp + 'av4ex_local-admin35.html'));
  503.                 ProjectHelpIDs.push(new Array('tabQuarantineStatus', av4mseHelp + 'av4ex_local-admin46.html')); 
  504.                 ProjectHelpIDs.push(new Array('tabQuarantineStorage', av4mseHelp + 'av4ex_local-admin49.html')); 
  505.                 ProjectHelpIDs.push(new Array('tabQuarantineMaintain', av4mseHelp + 'av4ex_local-admin50.html'));
  506.                 ProjectHelpIDs.push(new Array('tabQuarantineDatabase', av4mseHelp + 'av4ex_local-admin51.html'));
  507.                 ProjectHelpIDs.push(new Array('tabQuarantineLogging', av4mseHelp + 'av4ex_local-admin52.html')); 
  508.                 ProjectHelpIDs.push(new Array('tabQuarantineQuery', av4mseHelp + 'av4ex_local-admin47.html'));
  509.                 ProjectHelpIDs.push(new Array('tabCSSStatus', av4mseHelp + 'av4ex_local-admin60.html'));
  510.                 ProjectHelpIDs.push(new Array('tabCSSUpdates', av4mseHelp + 'av4ex_local-admin62.html'));
  511.                 ProjectHelpIDs.push(new Array('tabCSSProxy', av4mseHelp + 'av4ex_local-admin63.html'));
  512.                 ProjectHelpIDs.push(new Array('tabCSSVod', av4mseHelp + 'av4ex_local-admin64.html')); 
  513.                 ProjectHelpIDs.push(new Array('tabCSSAdvanced', av4mseHelp + 'av4ex_local-admin65.html'));
  514.             }
  515.  
  516.             // AV4SRV specific pages
  517.             if(is_av4srv == true)
  518.             {
  519.                 ProjectHelpIDs.push(new Array('tabServerStatus', av4srvHelp + 'virus_and_spy_protection/concepts/how_to_scan-mac.html'));
  520.                 ProjectHelpIDs.push(new Array('tabServerRealtime', av4srvHelp + 'virus_and_spy_protection/concepts/real_time_scanning.html'));
  521.                 ProjectHelpIDs.push(new Array('tabServerManualStatus', av4srvHelp + 'virus_and_spy_protection/concepts/manual_scanning.html'));
  522.                 ProjectHelpIDs.push(new Array('tabServerScheduledScanning', av4srvHelp + 'virus_and_spy_protection/concepts/scheduled_scanning.html'));
  523.                 ProjectHelpIDs.push(new Array('tabQuarantineQueryFiles', av4srvHelp + 'virus_and_spy_protection/tasks/see_the_programs_in_quarantine.html'));
  524.             }
  525.             
  526.             // Pages which are different for both products
  527.             if(is_both == true || is_av4mse == true)
  528.             {
  529.                 // TODO: Think how to solve it when both products are installed.
  530.                 // Probably we should add to help links to these pages.
  531.                 ProjectHelpIDs.push(new Array('tabQuarantineStatus', av4mseHelp + 'av4ex_local-admin4.html'));
  532.             }
  533.             else
  534.             {
  535.                 ProjectHelpIDs.push(new Array('tabQuarantineStatus', av4srvHelp + 'virus_and_spy_protection/concepts/quarantine.html'));
  536.             }
  537.         }
  538.     }
  539.  
  540.     
  541.     var VirusScanStatuses = new Array();
  542.     var CntrVirusScanStatuses = 0;
  543.     function virusScanStatus(name, status)
  544.     {
  545.         this.name = name;
  546.         this.status = status;
  547.     }
  548.     function setVirusScanStatus(name, status, overwrite)
  549.     {
  550.         var index = have_such_entry(VirusScanStatuses, name);
  551.         if(index == -1)
  552.             VirusScanStatuses[CntrVirusScanStatuses++] = new virusScanStatus(name, status);
  553.         else if(overwrite)
  554.             VirusScanStatuses[index].status = status;
  555.     }
  556.     function getVirusScanStatus(name)
  557.     {
  558.         var index = have_such_entry(VirusScanStatuses, name);
  559.         if(index != -1)
  560.             return VirusScanStatuses[index].status;
  561.     }
  562.     check_unsaved_settings(false);
  563. </script>
  564. <script type="text/javascript" src="https://<?php echo $_SERVER[HTTP_HOST];?>/common/commonscripts.js"></script>
  565.