
//****************************************
// IMPOSTAZIONE DEL PROXY SETTING PER NETSCAPE
// 
// occorre che sia installato Internet Explorer 5 o superiori 
// oppure Windows Scripting Host 5 o superiori 
//			(reperibile su: http://msdn.microsoft.com/scripting)
//
//****************************************

var proxy = "px.bess-piemonte.it";
var porta = "3128";
var pathEsclusi = "*.dummy";

var fso = new ActiveXObject("Scripting.FileSystemObject");
var elencoDirUsers;
var percorso = "";

var f, Temp;  
var LineFound;
var vbOKOnly = 0, vbOKCancel = 1, vbInformation = 64, vbCancel = 2;
var ForReading = 1, ForWriting = 2, ForAppending = 8;    

//*****************************************************************************
// prova a cerca re nel registry su 2 chiavi possibili
function cercaPathNelRegistry ()
{

try 
{
 	var versione = WSHShell.RegRead("HKEY_LOCAL_MACHINE\\SOFTWARE\\Netscape\\Deinstall\\Netscape Navigator\\CurrentVersion");
 	percorso = WSHShell.RegRead("HKEY_LOCAL_MACHINE\\SOFTWARE\\Netscape\\Netscape Navigator\\" + versione + "\\Main\\Install Directory");
 	percorso = percorso.replace("Communicator","Users") ;
}
catch(e)
{
	try 
	{
	 	WScript.echo(WSHShell.RegRead("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App Paths\\Netscape.exe\\Path"));
	 	percorso = (WSHShell.RegRead("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App Paths\\Netscape.exe\\Path")).replace(/Communicator.+$/,"");
	}
	catch(e1)
	{
	     return(false);
	}
}
}

//*********************************************************************************
// prova nei path più comuni...
function  cercaNeiPath( )
{
	var P1 = "C:\\Program Files\\Netscape\\Users";
	var P2 = "C:\\Programmi\\Netscape\\Users";
	var P3 = "D:\\Program Files\\Netscape\\Users";
	var P4 = "D:\\Programmi\\Netscape\\Users";
	
	if(fso.FolderExists(P1))
	{	
		percorso = P1;
		return(true)
	}	
	if(fso.FolderExists(P2))
	{	
		percorso = P2;
		return(true)
	}	
	if(fso.FolderExists(P3))
	{	
		percorso = P3;
		return(true)
	}	
	if(fso.FolderExists(P4))
	{	
		percorso = P4;
		return(true)
	}	
	return(false);
} 

///*************************************************************
// scrive file di configurazione Netscape
function scriviFilePrefs ( Path )
{
	f = fso.OpenTextFile(Path, ForReading);
	var Res = f.ReadAll();
	
	t = Res.search("network.proxy");
	f.Close();
	if (t == -1)
	{
		f = fso.OpenTextFile(Path, ForAppending, false);
		f.WriteLine('user_pref("network.proxy.http", "' + proxy + '");');
		f.WriteLine('user_pref("network.proxy.http_port", "' + porta + '");');
		f.WriteLine('user_pref("network.proxy.no_proxies_on", "' + pathEsclusi + '");');
		f.WriteLine('user_pref("network.proxy.type", 1);');	
		f.Close();
	}
} 

//****************************************************************************
// ***********   MAIN   ******************************************************

var Path, Path1, Path2;

objArgs = WScript.Arguments;

var WSHShell = WScript.CreateObject("WScript.Shell");
objArgs = WScript.Arguments;
if(objArgs.length == 0)
{
 	if(!cercaPathNelRegistry())
 	{
		if(!cercaNeiPath())
		{
			WSHShell.Popup("La ricerca della configurazione non ha avuto esito positivo.\nIndicare come parametro la directory dove reperire il file pref.js di configurazione", 0, "Errore", vbInformation );
			WScript.Quit();
		}   	
	}   
	if(fso.FolderExists(percorso))
	{
		var f = fso.GetFolder(percorso);
		elencoFolderUtenti = new Enumerator(f.SubFolders);
  		s = "";
	    for (;!elencoFolderUtenti.atEnd(); elencoFolderUtenti.moveNext())
	    {
	    	s += elencoFolderUtenti.item();
	    	s += ":::";
	    }
		elencoDirUsers = (s.replace(percorso + "\\","")).split(":::")
     	if(s == "")
     	{
			WSHShell.Popup("Non sono presenti utenti configurati.", 0, "Errore", vbInformation );
			WScript.Quit();
		}
		// correggi tutti i file di tutti i profili utente
		for(i=0; i< elencoDirUsers.length-1; i++)
		{
			//WScript.Echo(percorso + "\\" + elencoDirUsers[i] + "\\prefs.js")
			scriviFilePrefs(percorso + "\\" + elencoDirUsers[i] + "\\prefs.js");
		}
	}
	else
	{
		WSHShell.Popup("Il percorso della configurazione \n(\"" + percorso + "\")\nnon è stato trovato.", 0, "Errore", vbInformation );
		WScript.Quit();
	}
}  
else
{
	objArgs = WScript.Arguments;
	Path = objArgs(0).replace(/\\/g,"\\\\");
	if (!fso.FileExists(Path))  
	{
		WSHShell.Popup("File prefs.js non trovato", 0, "Errore", vbInformation );
 			WScript.Quit()                              
	}
	scriviFilePrefs(Path);
}

WSHShell.Popup("Il browser è stato configurato con il proxy.\n(Si ricorda di chiudere e riaprire il browser per rendere effettive le modifiche)", 0, "WSH", vbInformation );




