// Common Java Script code

if (navigator.userAgent.indexOf("Mozilla/3.0") != -1) version = "n3";
else if (navigator.userAgent.indexOf("Mozilla/4.0") != -1) version = "n3";
else if (navigator.userAgent.indexOf("Mozilla/5.0") != -1) version = "n3";
else if (navigator.userAgent.indexOf("MSIE") != -1) version = "n2";
else if (navigator.userAgent.indexOf("Mozilla/2.0") != -1) version = "n2";
else version = "n2";

if (version == "n3") {
   MainDiag = new MakeImgArray(1)
   OverDiag = new MakeImgArray(12)
   DescDiag = new MakeStrArray(12)

   MainDiag[1].src = "image/PlatformDiag.gif";

   OverDiag[1].src = "image/PlatformDiag_IndCtlNet.jpg"
   OverDiag[2].src = "image/PlatformDiag_NetCfg.jpg"
   OverDiag[3].src = "image/PlatformDiag_DrvCtl.jpg"
   OverDiag[4].src = "image/PlatformDiag_BarCode.jpg"
   OverDiag[5].src = "image/PlatformDiag_PLC.jpg"
   OverDiag[6].src = "image/PlatformDiag_SCADA.jpg"
   OverDiag[7].src = "image/PlatformDiag_HMI.jpg"
   OverDiag[8].src = "image/PlatformDiag_RDB.jpg"
   OverDiag[9].src = "image/PlatformDiag_Report.jpg"
   OverDiag[10].src = "image/PlatformDiag_PcCtl.jpg"
   OverDiag[11].src = "image/PlatformDiag_VBnC.jpg"
   OverDiag[12].src = "image/PlatformDiag_MES.jpg"

   DescDiag[1].src = "Industrial Control Networks - Having problems with slow throughput or battling to maintain a poorly designed PLC network? We have the expertise to help solve your problems. We have extensive knowledge of PLC networks, including Modbus Plus, DH+, ControlNet, DeviceNet, Profibus, Genius, and SDS. Let our communication expertise make your PLC network headaches disappear."	
   DescDiag[2].src = "Network Configuration Services - Control systems and industrial environments have special requirements for networking. We can help you select the best topology and equipment for your needs and help implement it as well as integrate it with your office network. This integration will facilitate an easier flow of information from the plant floor. We can even help merge this information into your existing business system. We have worked with Ethernet, Token-Ring, and frame relay networks, LAN's and WAN's, fiber optic and copper. Whether you need a network installed in your manufacturing facility or your office space, PC configuration services, or help with your Microsoft or Netware servers, we are at your service."	
   DescDiag[3].src = "Drive Controls - Whether your needs are multi-axis positioning, velocity control, or web line controls, we've got the background to meet your needs. We have experience integrating drive systems with Allen Bradley, Modicon, Reliance AutoMax, GE, Delta Tau, AeroTech, and Paradym-31 controllers making use of many different drives from Kollmorgen, Reliance, AB, Siemens, ABB, and Yaskawa."	
   DescDiag[4].src = "Barcode Data Collection Systems - If your needs are in the areas of inventory tracking, plant floor data collection, or time and attendance, we have experience with solutions from IBM as well as custom programmed systems. We have programmed and worked with hardware from Intermec, Symbol, Welch Allyn, and IBM. We have developed stand alone systems as well as systems that are integrated with our customers' business systems."	
   DescDiag[5].src = "PLC Programming - We provide programming services on many types of Programmable Logic Controllers (PLC's) including Allen Bradley, Modicon, GE, Siemens, Reliance, and Mitsubishi. We have experience in web line systems, batching systems, mix-mill systems, material handling, wastewater management, power generation automation, and conveying systems. Whether you are making changes to an existing control scheme, upgrading outdated technology or replacing an old relay system we have the capabilities you need."	
   DescDiag[6].src = "SCADA Systems - Many of the control systems we work on involve integration with a Supervisory Control and Data Acquisition System. We have many years of experience working with Intellution systems, RS View, Wonderware, CiTect, Cimplicity, and fxView (Process Window). We work with you and your operators to develop the most functional and maintainable system possible. We also make sure that the areas of historical data collection, alarming, and reporting will meet and exceed your requirements."	
   DescDiag[7].src = "Human Machine Interface (HMI) - Depending on the requirements of your system it may be necessary (or advisable) to install an HMI. Without the overhead of a full PC, HMI's allow you to have a dedicated control interface for your process with high-speed communications and graphics. We have experience designing interfaces and programming on a variety of HMI's including Panelmate, Panel View, Nematron, Total Control Products, Xycom, and Mitsubishi."	
   DescDiag[8].src = "Relational Database (RDB) Systems - We have long been involved in integrating control and data collection systems with our customers' business systems. Typically this integration involves the use of a secondary database server as a repository for plant floor data as well as facilitating easier reporting of plant floor production data. We will develop a custom database solution to fit your needs utilizing a database that fits in with your corporate directives whether it is Microsoft SQL Server, Oracle, IBM DB2, Microsoft Access or others. Reporting can be done using one or more of many options including Crystal Reports, Microsoft Access and Excel."	
   DescDiag[9].src = "Reporting - We have had good success with generating reports using Crystal Reports, Microsoft Access and Excel. Data sources for our reports are commonly Relational Databases, however, then can also be spread sheets, flat files, custom text files, historical data, or real time process data."	
   DescDiag[10].src = "PC-Based Control - With the appearance of more PCs on the plant floor, it is becoming more popular to utilize the capabilities of PCs for control rather than PLC's. We have experience with several PC based control packages including Total Control FrameworX (formally known as Taylor Waltz), Intellution Paradym-31, and Steeplechase. In addition, we have experience in the IEC-61131 programming standards such as ladder logic, function block diagrams, structured text, and sequential function chart."	
   DescDiag[11].src = "Visual Basic (VB) and Visual C++ Programming - If your requirements are for a custom programming solution we can fill your needs. We have developed many systems using VB and C++ to meet our customer's requirements for custom data collection, microprocessor control, communications systems as well as add-ons to many popular SCADA and control packages."	
   DescDiag[12].src = "Manufacturing Execution Systems (MES) - MES integration enables companies to build manufacturing facilities that achieve optimum productivity levels through the use of concise information and the integration of related systems. MES integrates your Enterprise Resource Planning (ERP) systems with your process control, quality, and maintenance management systems. MES systems provide the real-time and historical information regarding all aspects of the process that is needed to manage resources and quality and to create process improvement systems."	

}
function MakeImgArray(n) {
   this.length = n
   for (var i = 1; i<=n; i++) {
  this[i] = new Image()
  }
  return this
}
function MakeStrArray(n) {
  this.length = n
  for (var i = 1; i<=n; i++) {
  this[i] = new String()
  }
  return this
}
function DiagOver(index,ImgName,LayerName) {
  document [ImgName].src = OverDiag[index].src;
  // document.Form1.DiagrmDesc.value = DescDiag[index].src
  // if (index == 4) {MM_showHideLayers(LayerName,'','show')}
  MM_showHideLayers(LayerName,'','show')
}
function DiagOut(index,ImgName,LayerName) {
  document [ImgName].src = MainDiag[1].src;
  // document.Form1.DiagrmDesc.value = "Move mouse over service option in image to see a description of our services."
  // if (index == 4) {MM_showHideLayers(LayerName,'','hide')}
  MM_showHideLayers(LayerName,'','hide')
}
function DescShowHide() {
  var i,p,v,obj,args=DescShowHide.arguments;
  for (i=0; i<(args.length-2); i+=3) {
      v=args[i+2];
      if (obj.style) { 
        obj=obj.style; 
        v=(v=='show')?'visible':(v='hide')?'hidden':v; }
    obj.visibility=v; }
}
function MM_findObj(n, d) { //v4.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && document.getElementById) x=document.getElementById(n); return x;
}

function MM_showHideLayers() { //v3.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v='hide')?'hidden':v; }
    obj.visibility=v; }
}
