function HIGHWAY_EnvInfo()
{
   document.writeln('<TT>');
   document.writeln('<B>ATTENZIONE!!! ATTENZIONE!!! ATTENZIONE!!! ATTENZIONE!!! ATTENZIONE!!!</B>');
   document.writeln('<BR><BR>');
   document.writeln('Per utilizzare <B>HighWay CD WEB</B> è necessario installare<BR>');
   document.writeln('Microsoft <B>Internet Explorer</B> versione <B>4.0</B>');
   document.writeln('<BR><BR>');
   document.writeln('Le istruzioni necessarie all\'installazione sono sul <B>manuale allegato</B> al CD-ROM.');
   document.writeln('Per problemi specifici contattare l\'<B>assistenza tecnica</B>.');
   document.writeln('<BR><BR>');
   document.writeln('</TT>');

   document.writeln('<hr size="1">');

   document.writeln('<table border="1">');
   document.writeln('<TR>');
   document.writeln('<TD align="center"><TT><B>Dettagli tecnici</B></TT></td>');
   document.writeln('</tr>');
   document.writeln('<TR>');
   document.writeln('<TD align="left"><TT>');document.write('<B>Nome applicazione..= </B>' + navigator.appName);document.writeln('</TT></td>');
   document.writeln('</tr>');
   document.writeln('<TR>');
   document.writeln('<TD align="left"><TT>');document.write('<B>Versione...........= </B>' + navigator.appVersion);document.writeln('</TT></td>');
   document.writeln('</tr>');
   document.writeln('<TR>');
   document.writeln('<TD align="left"><TT>');document.write('<B>Piattaforma........= </B>' + navigator.platform);document.writeln('</TT></td>');
   document.writeln('</tr>');
   document.writeln('<TR>');
   document.writeln('<TD align="left"><TT>');document.write('<B>Lingua.............= </B>' + navigator.language);document.writeln('</TT></td>');
   document.writeln('</tr>');
   document.writeln('<TR>');
   document.writeln('<TD align="left"><TT>');document.write('<B>Codice applicazione= </B>' + navigator.appCodeName);document.writeln('</TT></td>');
   document.writeln('</tr>');
   document.writeln('<TR>');
   document.writeln('<TD align="left"><TT>');document.write('<B>User Agent.........= </B>' + navigator.userAgent);document.writeln('</TT></td>');
   document.writeln('</tr>');
   document.writeln('</table>');
}


function HIGHWAY_BrowserType()
{
 var sNavName="", sNavVersion="";

   sNavName = navigator.appName;
   sNavVersion = navigator.appVersion;
   sNavVersion = sNavVersion.substring(0,1);

   if ( (sNavName == "Microsoft Internet Explorer") && (sNavVersion >= "4") )
      return("MSIE");

   if ( (sNavName == "Netscape") && (sNavVersion >= "4") )
      return("NS");
   else
      return("NOK");
}

function HIGHWAY_Object_Name()
{
  return "HIGHWAY_" + HIGHWAY_BrowserType();
}

function HIGHWAY_Win_Name()
{
  return "HIGHWAY_ObjectWin";
}

function HIGHWAY_Object()
{
 //var sBrowser = HIGHWAY_BrowserType();
 //var sHIGHWAY = "HIGHWAY_" + sBrowser;
 var sHIGHWAY = HIGHWAY_Object_Name();
 //var sWinName = "HIGHWAY_ObjectWin";
 var hWindow  = null;
 var obj      = null;

   if (obj!=null)
     return obj;

   if (HIGHWAY_BrowserType()=="NS")
   {
      //hWindow = window.open("", HIGHWAY_Win_Name(), "width=1,height=1,dependent=no,top=0,left=0");
      if (top.opener==null)
        hWindow = top.frames['bottom'];
      else hWindow = top.opener.top.frames['bottom'];
      if (  ("<"+eval(hWindow.document[sHIGHWAY])+">"=="<undefined>") 
         || ("<"+eval(hWindow.document[sHIGHWAY])+">"=="<null>") )
      {
         hWindow.document.open();
         hWindow.document.writeln('<HTML>');
         hWindow.document.writeln('<SCRIPT LANGUAGE="JavaScript" SRC="file:///' + HIGHWAY_GetDisk() + '|/highway/bincd/hwdb/hwdb.js">');
         hWindow.document.writeln('</SCRIPT>');
         hWindow.document.writeln('<BODY BGCOLOR="#88c0b8">');
         /*
         hWindow.document.writeln('<BODY BGCOLOR="blue">');
         hWindow.document.writeln('<CENTER>');
         hWindow.document.writeln('<FONT COLOR="yellow"><B><I>HighWay CD WEB</I></B></FONT>');
         hWindow.document.writeln('</CENTER>');
         */
         hWindow.document.writeln('<embed type="application/x-nphwdb-plugin"');
         hWindow.document.writeln('   id="' + sHIGHWAY + '" name="' + sHIGHWAY + '"');
         hWindow.document.writeln('   PLUGINURL="nphwdb.jar"');
         hWindow.document.writeln('   hidden="true" border="0" width="0" height="0">');
         hWindow.document.writeln('</embed>');
         hWindow.document.writeln('</BODY>');
         hWindow.document.writeln('</HTML>');
         hWindow.document.close();
      }
      obj = hWindow.document[sHIGHWAY];
   }
   else if (HIGHWAY_BrowserType()=="MSIE")
   {
      if (  ("<"+eval(document[sHIGHWAY])+">"=="<undefined>") 
         || ("<"+eval(document[sHIGHWAY])+">"=="<null>") )
      {
         var sObjectTag = "";
         sObjectTag += '<object id="' + sHIGHWAY + '" name="' + sHIGHWAY + '"';
         sObjectTag += '   codebase="HWDB.CAB"';
         sObjectTag += '   classid="clsid:C0195087-0DE6-11D3-A8A3-0080C8F70CC3"';
         sObjectTag += '   hidden="true" border="0" width="0" height="0">';
         sObjectTag += '</object>';
         document.body.insertAdjacentHTML("BeforeEnd", sObjectTag);
      }
      obj = document[sHIGHWAY];
   }
   else
   {
      sNavName = navigator.appName;
      sNavVersion = navigator.appVersion;
      alert(sNavName + " Ver." +sNavVersion);
   }

   if (obj == null) 
      alert("ERRORE: l'oggetto HWDB non è stato caricato correttamente!!!");

   return( obj );
}

/*
function HIGHWAY_StartApplication()
{
 var cmdStart="";
 var sBrowser=HIGHWAY_BrowserType();

   if (sBrowser=="NS")
   {
      cmdStart += "HIGHWAY_Init('\\\\highway\\\\bincd' , '/HIGHWAY'); ";
      cmdStart += "HIGHWAY_doHref('/afo/fhome', '_parent'); ";
   }
   else if (sBrowser=="MSIE")
   {
      cmdStart += "HIGHWAY_Init('\\\\highway\\\\bincd' , '/HIGHWAY'); ";
      cmdStart += "HIGHWAY_doHref('/afo/fhome', '_parent'); ";
   }
   else
      HIGHWAY_EnvInfo();

   return(cmdStart);
}
*/
function HIGHWAY_Init(sBinPath, sScriptId)
{
 var sPath = HIGHWAY_GetDisk() + ":" + sBinPath;
 var sId = sScriptId;

   if ( (HIGHWAY_Object().getApplicationId()=="") && (HIGHWAY_Object().getApplicationPath()=="") )
      return ( HIGHWAY_Object().Init(sPath, sId) );
   else
      return( "" );
}

var thewindowstatus = 'HighWay CDWeb 3D Informatica';

function HIGHWAY_Navigate( sURL, sTarget, sGoTo )
{ 
   if (sTarget=="")   sTarget="_self";

   if (sGoTo!="")  sGoTo = "#" + sGoTo;

   switch (sTarget)
   {
      case "_self":   
                      document.location.href=sURL+sGoTo;
                      break;
      case "_blank":  
                      i = sGoTo.indexOf('!!');
                      var opt = '';
                      if ( i >= 0 )  {
                      	opt = sGoTo.substring(i + 2);
                      	sGoTo = sGoTo.substring(0, i);
                      }
                      window.open(sURL+sGoTo,sTarget,opt)
                      break;
      case "_parent": window.parent.location.href = sURL+sGoTo;
                      break;
      case "_top":    
                      var WndPar = window.parent;
                      do  {
                         LastGood = WndPar;
                         WndPar = LastGood.parent;
                      } while ( typeof(WndPar.frames['content']) != 'object' );
                      LastGood.location.href = sURL+sGoTo;
                      delete WndPar;
                      delete LastGood;
                      break;
      default:        // sTarget=frame_name
                      if (window.parent.frames[sTarget]!=null)
                      {
                         window.parent.frames[sTarget].location.href = sURL+sGoTo;
                      }
                      else {
                       var thewin = eval(sTarget);
                         // Fabio 
                         thewin.location.href = sURL+sGoTo;
                         //alert("Navigate: frame <" + sTarget + "> unknown!!!");
                      }
                      break;
   }
   window.defaultStatus = thewindowstatus;
}

function HIGHWAY_parseURL( sURL )
{
 var resArray;
 var nPos;

   resArray = new Array();

   resArray["Command"] = "";
   resArray["GetData"] = "";
   resArray["GoTo"] = "";
   resArray["PostData"]="";

   // Extract Command & GetData-buffer from sURL
   resArray["Command"] = sURL;
   nPos = resArray["Command"].indexOf("?");
   if (nPos>0)
   {
      resArray["GetData"] = resArray["Command"].substring(nPos+1);
      resArray["Command"] = resArray["Command"].substring(0, nPos);
      nPos = resArray["GetData"].indexOf("#");
      if (nPos>0)
      {
         resArray["GoTo"] = resArray["GetData"].substring(nPos+1);
         resArray["GetData"] = resArray["GetData"].substring(0, nPos);
      }
   }
   else
   {
      nPos = resArray["Command"].indexOf("#");
      if (nPos>0)
      {
         resArray["GoTo"] = resArray["Command"].substring(nPos+1);
         resArray["Command"] = resArray["Command"].substring(0, nPos);
      }
   }

   return( resArray );
}


function HIGHWAY_doHref( sHrefURL, sTargetWindow )
{ 
 var sURL="";
 var urlArray;
 var sRes="";

   // Extract Command & GetData-buffer from sHrefURL
   urlArray = HIGHWAY_parseURL(sHrefURL)
   urlArray["PostData"]="";

   // START: Debugging stuff
  /*var sMessage="";
   sMessage += "function doHref(" + sHrefURL + ", " + sTargetWindow +")\n";
   sMessage += "\nCommand = " + urlArray["Command"] + "\n";
   sMessage += "\nGetData = " + urlArray["GetData"] + "\n";
   sMessage += "\nPostData= " + urlArray["PostData"] + "\n";
   sMessage += "\nGoTo= " + urlArray["GoTo"];
   alert(sMessage); 
   // END: Debugging stuff

   sRes = HIGHWAY_Object().Execute(urlArray["Command"], urlArray["GetData"], urlArray["PostData"] );
   if (sRes=="")
   {
      sURL = HIGHWAY_Object().getResultURL();
      HIGHWAY_Navigate( sURL, sTargetWindow, urlArray["GoTo"] ); 
   }
   else if (sRes=="BUSY")
      alert("Operazione in corso! Attendere.");
   else
      alert(sRes);*/
     if(sTargetWindow == "_blank")
     	{
     		alert()
     	}
     else
     	document.documento.location = urlArray["Command"] 
      

}

var HIGHWAY_jsWindowOpen = window.open;

function HIGHWAY_WindowOpen( sOpenURL, sTarget, sOpt )
{
 var sURL="";
 var urlArray;
 var sRes="";

   var pos = sOpenURL.indexOf("/HIGHWAY");
   if (pos<0 || sOpenURL=="") 
     return HIGHWAY_jsWindowOpen(sOpenURL,sTarget,sOpt);

   sOpenURL = sOpenURL.substring(pos+"/HIGHWAY".length);

   // Extract Command & GetData-buffer from sOpenURL
   urlArray = HIGHWAY_parseURL(sOpenURL);
   urlArray["PostData"]="";

   // START: Debugging stuff
   /*
   var sMessage="";
   sMessage += "function doHref(" + sOpenURL + ", " + sTarget + ", " + sOpt + ")\n";
   sMessage += "\nCommand = " + urlArray["Command"] + "\n";
   sMessage += "\nGetData = " + urlArray["GetData"] + "\n";
   sMessage += "\nPostData= " + urlArray["PostData"] + "\n";
   sMessage += "\nGoTo= " + urlArray["GoTo"];
   alert(sMessage);
   */
   // END: Debugging stuff

   sRes = HIGHWAY_Object().Execute( urlArray["Command"], urlArray["GetData"], urlArray["PostData"] );

   if (sRes=="")
   {
      sURL = HIGHWAY_Object().getResultURL();
      return HIGHWAY_jsWindowOpen('file://'+sURL,sTarget,sOpt);
   }
   else if (sRes=="BUSY")
      alert("Operazione in corso! Attendere.");
   else
      alert(sRes);
   return 0;
}

window.open = HIGHWAY_WindowOpen;

function HIGHWAY_doAction( objForm, otherJScode, submitImage )
{ 
 var sTargetWindow="", sURL="";
 var sValue="", sName="";
 var urlArray;
 var sRes="";
 var nPos;

   if (otherJScode.length>0)
   {
/*  // Fabio
      nPos=otherJScode.toLowerCase().indexOf("return");
      if (nPos>=0)
         otherJScode = otherJScode.substr( nPos + "return".length );
*/
      otherJScode = "function checktheotherjscodevalue(){"+otherJScode+"}checktheotherjscodevalue();"
      if (!eval(otherJScode)) {
         if (submitImage=='') // Fabio
           return( false );
         return;
      }
   }

   sTargetWindow = objForm.target;

   // Extract Command & GetData-buffer from sHrefURL
   urlArray = HIGHWAY_parseURL(objForm.action)


   // Build PostData-buffer from objForm
   for (i=0; i<objForm.length; i++)
   {
      sValue = "";
      sName = objForm.elements[i].name;

      if (objForm.elements[i].type.indexOf("select") == 0)
      {
         if (objForm.elements[i].selectedIndex != -1)
            sValue += objForm.elements[i].options[objForm.elements[i].selectedIndex].value;
      }
      else if ( (objForm.elements[i].type=="radio") || (objForm.elements[i].type=="checkbox") )
      {
/* Fabio
         if (objForm.elements[objForm.elements[i].name].length>0)
         {
            for (j=0; j<objForm.elements[objForm.elements[i].name].length; j++)
               if (objForm.elements[i+j].checked == true)
                  sValue += objForm.elements[i+j].value;
            i = i + (j - 1);
         }
         else
*/
            if (objForm.elements[i].checked == true)
               sValue += objForm.elements[i].value;
      }
      else if (    (objForm.elements[i].type!="button") 
                && (objForm.elements[i].type!="submit") 
                && (objForm.elements[i].type!="reset") 
              )
         sValue += objForm.elements[i].value;

      if (sValue=="null") sValue="";

      if (sValue!="")
      {
         sValue = sName + "=" + escape(sValue);
         if (objForm.method=="post")
         {
            if (urlArray["PostData"] == "" )
               urlArray["PostData"] = sValue;
            else
               urlArray["PostData"] += "&" + sValue;
         }
         else
         {
            if (urlArray["GetData"] == "" )
               urlArray["GetData"] = sValue;
            else
               urlArray["GetData"] += "&" + sValue;
         }
      }
   }

   if (submitImage!="")
   {
      sValue = submitImage.name + ".x=0&" + submitImage.name + ".y=0";
      if (objForm.method=="post")
      {
         if (urlArray["PostData"] == "" )
            urlArray["PostData"] = sValue;
         else
            urlArray["PostData"] += "&" + sValue;
      }
      else
      {
         if (urlArray["GetData"] == "" )
            urlArray["GetData"] = sValue;
         else
            urlArray["GetData"] += "&" + sValue;
      }
   }

   // START: Debugging stuff
   /*var sMessage="";
   sMessage += "function doAction(" + objForm.name +")\n";
   sMessage += "action: " + objForm.action + "\n";
   sMessage += "length: " + objForm.length + "\n";
   sMessage += "method: " + objForm.method + "\n";
   sMessage += "target: " + sTargetWindow + "\n";
   sMessage += "encoding: " + objForm.encoding + "\n";
   sMessage += "\nCommand = " + urlArray["Command"] + "\n";
   sMessage += "\nGetData = " + urlArray["GetData"] + "\n";
   sMessage += "\nPostData= " + urlArray["PostData"] + "\n";
   sMessage += "\nGoTo= " + urlArray["GoTo"];
   alert(sMessage);*/
   // END: Debugging stuff

   sRes = HIGHWAY_Object().Execute( urlArray["Command"], urlArray["GetData"], urlArray["PostData"] );

   if (sRes=="")
   {
      sURL = HIGHWAY_Object().getResultURL();
      HIGHWAY_Navigate( sURL, sTargetWindow, urlArray["GoTo"] ); 
   }
   else if (sRes=="BUSY")
      alert("Operazione in corso! Attendere.");
   else
      alert(sRes);
   
   return( false );
}

function HIGHWAY_GetDisk()
{
 var nPos;

 var sRes = location.pathname;

   nPos = sRes.indexOf(":");
   if (nPos < 0) nPos = sRes.indexOf("|");

   if (nPos >= 0) 
   {
      sRes = sRes.substring(nPos-1, nPos);
      return(sRes);
   }

   nPos = sRes.indexOf("\\");
   if (nPos != 0) 
   {
      sRes = sRes.substring(0, nPos);
      return(sRes);
   }

   return "";
}


