/* 6,0,0,201
--------------------------------------------------------------------------

Copyright (c) 2001-9 Corporate Practical Solutions and Partners.

This software is the property of Corporate Practical Solutions and Partners.

No part of this software may be reproduced in any form,
without the prior consent of Corporate Practical Solutions.

--------------------------------------------------------------------------
*/
  var SH_Report = "systemhound Home";  var HW_ManufacturerArray = new Array(); var HW_OperatingSystemArray = new Array(); var HW_MachineCount = 0; var	GB_BinarySearchPosition; var DP_ImagePath = "Images"; var DP_TableWidth = 775; var DP_RootPath = "."; var DP_ImagePath = DP_RootPath + "/Images"; var DP_LastChart = 0; var SH_FieldArray = new Array();  var DP_BGColor = "FFFFFF";  function StartPage() { HideData(); setTimeout("StartPage2()", 500); }  function StartPage2() { ReadCookie(); AddMachines(); if ((LicenseDetails == "") || (HW_MachineCount == 0)) {
 myGetElementById("Title").innerHTML = '<span style="position:absolute;top:5px;left:10px;z-index:99"><img src="Images/Assets/9011.jpg" /></span><table width="775" border="0"><tr><td><img src="Images/Assets/9010.jpg"></td></tr><tr height="20"><td></td></tr><tr height="20"><td align="center"><span class="ArticleHeading">The database is not ready for viewing.</span></td></tr><tr><td align="center"><span class="ArticleText GreyText">Logfiles need to be generated from the systemhound clients and processed by the server before the reports can be viewed.</span></td></tr><tr><td align="center"><span class="ArticleText GreyText">Please try again in a few minutes.</span></td></tr><tr height="60"><td align="center"><img src="Images/Assets/5037.jpg" onclick="window.location.reload();return false;" title="Try again"></td></tr></table>'; myGetElementById("Title").style.display = ""; myGetElementById("PleaseWait").style.display = "none"; return; } QuickSort(HW_ManufacturerArray, 1, 0, false);
 QuickSort(HW_OperatingSystemArray, 1, 0, false); LicenseInfo(); RefreshDisplay(); ShowData(); UpdateCopyright(); UpdateLastUpdate(); DoRSS(); DoAffiliates(); }  function RefreshDisplay() { var	ChartNumber;  HTML = '<img src="' + DP_ImagePath + '/Devices/1.gif" height="20"><span id="BannerSpan" style="position:absolute;top:10px;left:10px;z-index:1"><IMG SRC="' + DP_ImagePath + '/Assets/9010.jpg"></span>';  if (DP_ChartTheme == 1) ColorArray = CorporateTones.split(","); else ColorArray = BrightTones.split(",");  myGetElementById("Title").innerHTML = HTML; ReadCookie(); do { ChartNumber = Math.floor(Math.random()*2); } while (ChartNumber == DP_LastChart); switch (ChartNumber) { case 0 : myGetElementById("HomeSpan1").innerHTML = OperatingSystemsArticle(); break; case 1 : myGetElementById("HomeSpan1").innerHTML = ManufacturersArticle(); break; } DP_LastChart = ChartNumber; WriteCookie(); myGetElementById("HomeSpan2").innerHTML = LicenseArticle();
 myGetElementById("UsefulLinksSpan").innerHTML = '<table width="100%" border="0" cellspacing="0" cellpadding="4"><tr><td colspan="2" class="MediumHeadline" valign="top" align="left">Quicklinks<br><center><img src="Images/Assets/8004.jpg" height="1" width="90%"></center></td></tr>' + UsefulLinks + '</table>'; UpdateLicense(); }  function AddMachine(GUID,MachineName,Model,OperatingSystem,CPU1,Memory,CDrive,CFree,MachineLastUpdate,User,IPAddress,Manufacturer) { Manufacturer = ProtectReservedCharacters(Manufacturer); OperatingSystem = ProtectReservedCharacters(OperatingSystem);  if (! HW_ManufacturerArray.BinarySearch(Manufacturer.toLowerCase())) { HW_ManufacturerCount = HW_ManufacturerArray.length; HW_ManufacturerArray[HW_ManufacturerCount] = new ManufacturerObject(Manufacturer); SaveManufacturer = HW_ManufacturerArray[HW_ManufacturerCount]; for (Count=HW_ManufacturerCount-1; Count>=GB_BinarySearchPosition; Count--) HW_ManufacturerArray[Count+1] = HW_ManufacturerArray[Count];
 HW_ManufacturerArray[GB_BinarySearchPosition] = SaveManufacturer; } else HW_ManufacturerArray[GB_BinarySearchPosition].Field[1]++;  if (! HW_OperatingSystemArray.BinarySearch(OperatingSystem.toLowerCase())) { HW_OperatingSystemCount = HW_OperatingSystemArray.length; HW_OperatingSystemArray[HW_OperatingSystemCount] = new OperatingSystemObject(OperatingSystem); SaveOperatingSystem = HW_OperatingSystemArray[HW_OperatingSystemCount]; for (Count=HW_OperatingSystemCount-1; Count>=GB_BinarySearchPosition; Count--) HW_OperatingSystemArray[Count+1] = HW_OperatingSystemArray[Count]; HW_OperatingSystemArray[GB_BinarySearchPosition] = SaveOperatingSystem; } else HW_OperatingSystemArray[GB_BinarySearchPosition].Field[1]++;  HW_MachineCount++; }  HW_ManufacturerArray.BinarySearch = function(SearchString) { var lower = 0; var upper = this.length - 1; var middle;  GB_BinarySearchPosition = 0;  if (upper == -1) return(false);  while (lower <= upper) { middle = Math.round(lower + ((upper - lower) / 2)); ManufacturerLC = this[middle].Field[0].toLowerCase();
 if (ManufacturerLC == SearchString) { GB_BinarySearchPosition = middle; return(true); } if (SearchString < ManufacturerLC) upper = middle - 1; else lower = middle + 1; } if (lower > upper) GB_BinarySearchPosition = lower; else GB_BinarySearchPosition = middle; return(false); };  HW_OperatingSystemArray.BinarySearch = function(SearchString) { var lower = 0; var upper = this.length - 1; var middle;  GB_BinarySearchPosition = 0;  if (upper == -1) return(false);  while (lower <= upper) { middle = Math.round(lower + ((upper - lower) / 2)); OperatingSystemLC = this[middle].Field[0].toLowerCase(); if (OperatingSystemLC == SearchString) { GB_BinarySearchPosition = middle; return(true); } if (SearchString < OperatingSystemLC) upper = middle - 1; else lower = middle + 1; } if (lower > upper) GB_BinarySearchPosition = lower; else GB_BinarySearchPosition = middle; return(false); };  function ManufacturerObject(Manufacturer) { this.Field = new Array();  this.Field.push(Manufacturer); this.Field.push(1); }   function OperatingSystemObject(OperatingSystem) {
 this.Field = new Array();  this.Field.push(OperatingSystem); this.Field.push(1); }  /* ------------------------------------------------------------------------------------------------- */  function OperatingSystemsArticle() { var HTML, ChartOptions;  if (GB_AnimateCharts) ChartOptions = "animation='1'"; else ChartOptions = "animation='0'";  XMLPie = Top10(HW_OperatingSystemArray, "bgColor='" + DP_BGColor + "' decimalPrecision='0' showPercentageValues='1' pieRadius='100' showNames='0' showValues='0' showPercentageInLabel='1' " + ChartOptions, false); HTML = '<table width="590" height="200" border="0" cellpadding="2" cellspacing="0">'; HTML = HTML + '<tr><td width="100%" colspan="2" valign="top" class="LargeHeadline GreyText2" align="center">' + Math.round(100 * (HW_OperatingSystemArray[0].Field[1] / HW_MachineCount)) + '% of the recorded machines are running ' + HW_OperatingSystemArray[0].Field[0] + '</td></tr>'; HTML = HTML + '<tr><td colspan="2" align="center"><table width="580" cellpadding="0" cellspacing="0" border="0">';
 HTML = HTML + '<tr><td width="100%" align="center">'; HTML = HTML + '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="' + FlashCodeBase + '" width="300" height="140" viewastext><param name="movie" value="Charts/3DPie.swf?dataXML=' + XMLPie + '&amp;chartWidth=300&amp;chartHeight=140"><param name="FlashVars" value=""><param name="quality" value="high"><param name="bgcolor" value="#' + DP_BGColor + '"><embed src="Charts/3DPie.swf?dataXML=' + XMLPie + '&amp;chartWidth=300&amp;chartHeight=140" flashvars="" quality="high" bgcolor="#' + DP_BGColor + '" width="300" height="140" align type="application/x-shockwave-flash" pluginspage="' + FlashCodeBase2 + '"></embed></object>'; HTML = HTML + '</td><td align="right">'; HTML = HTML + GridHTML(HW_OperatingSystemArray, "Hardware/Hardware.htm", "Master Hardware", "Operating Systems", "MAN|any|SC|3|SEA|", "Machine count"); HTML = HTML + '</td></tr></table></td></tr>'; HTML = HTML + '<tr><td colspan="2">';
 HTML = HTML + '<table width="100%" border="0" height="60" cellpadding="4" cellspacing="0"><tr><td class="SmallestHeadline GreyText">Operating Systems<br><img src="Images/Assets/9006.png" height="1" width="50%"></td></tr><tr><td><table cellpadding="0" cellspacing="0"><tr><td><div align="justify"><span class="ChartSubText">' + ExternalLink2Info + '</span></div></td></tr></table></td></tr></table>'; HTML = HTML + '</td></tr></table>'; return(HTML); }  /* ------------------------------------------------------------------------------------------------- */  function ManufacturersArticle() { var HTML, ChartOptions;  if (GB_AnimateCharts) ChartOptions = "animation='1'"; else ChartOptions = "animation='0'";  XMLPie = Top10(HW_ManufacturerArray, "bgColor='" + DP_BGColor + "' decimalPrecision='0' pieYScale='30' showPercentageValues='1' showNames='0' showValues='0' showPercentageInLabel='1' pieYScale='50' pieBorderAlpha='40' pieFillAlpha='70' pieSliceDepth='8' pieRadius='60' " + ChartOptions, false);
 XMLColumn = Top10(HW_ManufacturerArray, "bgColor='" + DP_BGColor + "' decimalPrecision='0' rotateNames='1' showValues='0' showNames='0' xAxisName='Manufacturer' chartLeftMargin='0' chartRightMargin='0' " + ChartOptions, false); HTML = '<table width="590" height="200" border="0" cellpadding="2" cellspacing="0">'; Pos = 0; if ((HW_ManufacturerArray[0].Field[0] == "Unknown") && (HW_ManufacturerArray.length > 1)) Pos++; HTML = HTML + '<tr height="50"><td width="100%" colspan="2" valign="top" class="LargeHeadline GreyText2" align="center">' + Math.round(100 * (HW_ManufacturerArray[Pos].Field[1] / HW_MachineCount)) + '% of the recorded machines are manufactured by ' + HW_ManufacturerArray[Pos].Field[0] + '</td></tr>'; HTML = HTML + '<tr><td colspan="2" align="center"><table cellpadding="0" cellspacing="0" width="580" border="0">'; HTML = HTML + '<tr><td width="300">';
 HTML = HTML + '<object id="FusionChart1" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="' + FlashCodeBase + '" width="300" height="240" viewastext><param name="movie" value="Charts/2DColumn.swf?dataXML=' + XMLColumn + '&amp;chartWidth=300&amp;chartHeight=240"><param name="FlashVars" value=""><param name="quality" value="high"><param name="bgcolor" value="' + DP_BGColor + '"><embed src="Charts/2DColumn.swf?dataXML=' + XMLColumn + '&amp;chartWidth=300&amp;chartHeight=240" flashvars="" quality="high" bgcolor="' + DP_BGColor + '" width="300" height="240" align type="application/x-shockwave-flash" pluginspage="' + FlashCodeBase2 + '"></embed></object>'; HTML = HTML + '</td><td align="right">'; HTML = HTML + GridHTML(HW_ManufacturerArray, "Hardware/Hardware.htm", "Master Hardware", "Manufacturers", "SC|2|MAN|", "Machine count"); HTML = HTML + '</td></tr></table></td></tr>'; HTML = HTML + '<tr><td>';
 HTML = HTML + '<table width="300" border="0" height="50" cellpadding="4" cellspacing="0"><tr><td class="SmallestHeadline GreyText">Machine Manufacturers<br><img src="Images/Assets/9006.png" height="1" width="100%"></td></tr><td><div align="justify"><span class="ChartSubText">Detailed information for all of the machines from any manufacturer can be found in the \"Master Hardware Report\".<br><br>To quickly navigate to a manufacturer\'s machines click on the manufacturer name above.</span></div></td></tr></table>'; HTML = HTML + '</td><td align="center">'; XMLPie = Top10(HW_ManufacturerArray, "bgColor='" + DP_BGColor + "' decimalPrecision='0' pieYScale='30' showPercentageValues='1' showNames='0' showValues='0' showPercentageInLabel='1' pieYScale='50' pieBorderAlpha='40' pieFillAlpha='70' pieSliceDepth='8' pieRadius='60'", true);
 HTML = HTML + '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="' + FlashCodeBase + '" width="140" height="100" viewastext><param name="movie" value="Charts/3DPie.swf?dataXML=' + XMLPie + '&amp;chartWidth=140&amp;chartHeight=100"><param name="FlashVars" value=""><param name="quality" value="high"><param name="bgcolor" value="' + DP_BGColor + '"><embed src="Charts/3DPie.swf?dataXML=' + XMLPie + '&amp;chartWidth=140&amp;chartHeight=100" flashvars="" quality="high" bgcolor="' + DP_BGColor + '" width="140" height="100" type="application/x-shockwave-flash" pluginspage="' + FlashCodeBase2 + '"></embed></object>'; HTML = HTML + '</td></tr>'; HTML = HTML + '</table>'; return(HTML); }  /* ------------------------------------------------------------------------------------------------- */  function Top10(a, ChartOptions, IncludeUnknown) { var	Pos = 0, Count = 0, XML = "", DisplayName; var ColorIndex = 0;  XML = "<graph " + ChartOptions + ">"; while ((Count < 10) && (Pos < a.length)) {
 if ((IncludeUnknown) || (a[Pos].Field[0] != "Unknown")) { DisplayName = ParseName(UnProtectReservedCharacters(a[Pos].Field[0])).toLowerCase(); if (DisplayName.length > 30) DisplayName = DisplayName.substr(0,30) + "..."; XML = XML + '<set name=\'' + DisplayName + '\' color=\'' + ColorArray[ColorIndex] + '\' value=\'' + a[Pos].Field[1] + '\' />'; Count++; if (ColorIndex == ColorArray.length) ColorIndex = 0; else ColorIndex++; } Pos++; } XML = XML + "</graph>"; return(XML); }  /* ------------------------------------------------------------------------------------------------- */  function LicenseArticle() { var	HTML;  HTML = '<table width="100%" border="0" cellspacing="0" cellpadding="0"><tr height="10"><td colspan="3"></td></tr><tr><td colspan="4" align="center"><img src="Images/Assets/8004.jpg" height="1" width="90%" /></td></tr><tr height="10"><td colspan="3"></td></tr><tr>';
 HTML = HTML + '<td width="199" valign="top" align="center" class="ArticleLargeText" background="Images/Assets/8006.jpg"><span id="UsefulLinksSpan"></span></td><td width="1" bgcolor="#C0C0C0"></td>'; HTML = HTML + '<td valign="top" width="200" align="center" class="ArticleLargeText"><span id="LicenseText"></span></td>'; HTML = HTML + '<td valign="top" width="200" align="center" class="ArticleLargeText"><table bgcolor="#FFFFFF" width="100%" border="0"><tr><td width="140" align="center"><span id="LicenseInfoSpan" class="ArticleText"></span></td><td><span id="LicenseMeter"></span></td></tr><tr><td colspan="2" class="ArticleFooter" align="center">' + LicenseDetails + '</td></tr></table></td>'; HTML = HTML +'</tr></table>';  if ((GB_Feedback) && (! GB_MaintenanceMode)) HTML = HTML + FeedbackButton();  return(HTML); }  /* ------------------------------------------------------------------------------------------------- */  function UpdateLastUpdate() { myGetElementById("LastUpdateSpan").innerHTML = AsciiDateTime(LastUpdate);
 if (CompanyName == "UNLICENSED") myGetElementById("CompanyInformation").innerHTML = "Free 10 Machine Evaluation"; else myGetElementById("CompanyInformation").innerHTML = "Licensed to " + CompanyName; }  /* ------------------------------------------------------------------------------------------------- */  function ReadCookie() { if ((window.navigator.cookieEnabled) && (document.cookie != "")) { GB_AnimateCharts = eval(GetCookieValue("GB_AC", true)); DP_LastChart = eval(GetCookieValue("HO_LC", -1)); } }  /* ------------------------------------------------------------------------------------------------- */  function WriteCookie() { var	Cookie1 = ""; var expireDate;  if (window.navigator.cookieEnabled) { expireDate = new Date; expireDate.setMinutes(expireDate.getMinutes()+5); document.cookie = "HO_LC=" + DP_LastChart + "; expires=" + expireDate.toGMTString(); } }  /* ------------------------------------------------------------------------------------------------- */  function DoAffiliates() { if (MaximumMachines > 10) return;
 if (InternetConnection) myGetElementById("HomeSpan3").innerHTML = '<img src="' + DP_ImagePath + '/Devices/1.gif" height="150" width="1"><iframe id="Affiliates" name="Affiliates" src="http://www.systemhound.biz/2007/affiliates/Affiliates.php" scrolling="no" width="800" height="150" frameborder="0" marginheight="0" marginwidth="0" style="position:absolute; left:0; z-index:99;">'; else myGetElementById("HomeSpan3").innerHTML = '<div align="center"><span class="BlackText PageDescription"><b><br>This is a complimentary version of systemhound and will display up to 10 machines in a database<br>Visit <a class="BlueText Pointer" href="">systemhound.com</a> to purchase more licenses</a><br><br></b></span></div>'; myGetElementById("HomeSpan3").style.display = ""; }  /* ------------------------------------------------------------------------------------------------- */  function DoRSS() { if (InternetConnection) {
 myGetElementById("RSSSpan").innerHTML = '<iframe id="RSS" name="RSS" src="http://www.systemhound.biz/2007/rss/?' + SiteDetails() + '" scrolling="no" width="200" height="300" frameborder="0" marginheight="0" marginwidth="0" style="position:absolute; left:0; z-index:99;"></iframe>'; myGetElementById("VisitSpan").innerHTML = '<table width="100%" border="0" cellspacing="0" cellpadding="4"><tr><td height="300" valign="top" id="Visit" background="http://www.systemhound.biz/2007/rss/8005.jpg"><table width="100%" border="0" cellspacing="0" cellpadding="4"><tr><td height="40">&nbsp;</td></tr><tr><td class="ArticleLargeText">Don\'t forget to visit systemhound.com regulary for user forums, competitions, latest downloads &amp; much more! We are a user-focused software company and always<br />welcome your<br />thoughts and<br />comments<br />on the<br />systemhound<br />product.</td></tr></table></td></tr></table>'; } else {
 myGetElementById("RSSSpan").innerHTML = 'Your PC must be connected to the internet and able to access the systemhound.com &amp; systemhound.biz domains to view the latest systemhound news.'; myGetElementById("VisitSpan").innerHTML = '<table width="100%" border="0" cellspacing="0" cellpadding="4"><tr><td class="MediumHeadline">Stay in touch<br /><center><img src="Images/Assets/8004.jpg" height="1" width="90%" /></center></td></tr><tr><td class="SmallerHeadline">Come and visit us on the Internet at systemhound.com</td></tr><tr><td class="ArticleLargeText BlackText">Don\'t forget to visit systemhound.com regulary for user forums, competitions, latest downloads &amp; much more! We are a user-focused software company and always welcome your thoughts and comments on the systemhound product.</td></tr></table>'; } }  /* ------------------------------------------------------------------------------------------------- */  function SiteDetails() {
 return('CN=' + CompanyName + '&MM=' + MaximumMachines + '&CM=' + CurrentMachines + '&SN=' + ServerName + '&SV=' + MSIServerVersion); }  /* ------------------------------------------------------------------------------------------------- */