
var JSPS_GPI_MSIE = "Microsoft Internet Explorer";
var JSPS_GPI_OPERA = "Opera";
var JSPS_GPI_MOZILLA = "Mozilla";
var JSPS_GPI_FIREFOX = "Firefox";
var JSPS_GPI_NAVIGATOR = "Navigator";

// Объявление объекта Programinfо
function ProgramInfo()
{
this.programName = "";
this.programVersion = "";
this.OperaCompatibilityMode = "";
this.programPlatform = "";
this.programLanguage = "";
this.systemLanguage = "";
}
// Объявление самой функции jspsGetProgramlnfo
function jspsGetProgramInfo()
{
var piObj = new ProgramInfo();
var ua = navigator.userAgent;
var an = navigator.appName;
var isntOpera = (ua.indexOf(JSPS_GPI_OPERA) == -1);
var n1, n2;
switch (an)
{
case JSPS_GPI_MSIE:
piObj.programLanguage = navigator.browserLanguage;
if (isntOpera)
{
	piObj.programName = an;
	n1 = ua.indexOf("MSIE") + 5;
	n2 = ua.indexOf(";", n1);
piObj.programVersion = ua.substring(n1, n2);
n1 = n2 + 2;
n2 = ua. indexOf (";", n1);
piObj.programPlatform = ua.substring(n1, n2);
piObj.systemLanguage = navigator.systemLanguage;
}
else
{
piObj.programName = JSPS_GPI_OPERA;
n1 = ua.lastIndexOf(" ") + 1; 
n2 = ua.length;
piObj.programVersion = ua.substring(n1, n2);
piObj.OperaCompatibilityMode = "MSIE 5.0+";
n1 = ua.indexOf("MSIE") +10;
n2 = ua.indexOf(";", n1);
piObj.programPlatform = ua.substring(n1, n2);
} 
break;
case "Netscape":
if (isntOpera)
{
n1 = ua.indexOf(";")+ 1;
n1 = ua.indexOf(";", n1) + 2;
n2 = ua.indexOf(";", n1);
piObj.programPlatform = ua.substring(n1, n2);
if (ua.indexOf(JSPS_GPI_FIREFOX) != -1)
{
	piObj.programName = JSPS_GPI_FIREFOX;
	n1 = ua.lastIndexOf("/") + 1;
	n2 = ua.length;
piObj.programVersion = ua.substring(n1, n2);
piObj.programLanguage = navigator.language;
}
else
{
	piObj.programLanguage = navigator.language.substring(0, 2);
	if (ua.indexOf("Netscape") != -1)
	{
piObj.programName = JSPS_GPI_NAVIGATOR;
n1 = ua.lastIndexOf("/") + 1;
n2 = ua.length;
piObj.programVersion = ua.substring(n1, n2);
}
else
{
piObj.programName = JSPS_GPI_MOZILLA;
n1 = ua.indexOf("rv:") + 3;
n2 = ua.indexOf(")");
piObj.programVersion = ua.substring(n1, n2);
}
 } 
  } 
  else
  {
piObj.programName = JSPS_GPI_OPERA; 
n1 = ua.lastIndexOf(" ") + 1;
n2 = ua.length;
piObj.programVersion = ua.substring(n1, n2);
piObj.OperaCompatibilityMode = "Mozilla 5.0";
n1 = ua.indexOf("(")+ 1;                                  

n2 = ua.indexOf(";", n1);
piObj.programPlatform = ua.substring(n1, n2);
piObj.programLanguage = navigator.browserLanguage;
}
break;
case JSPS_GPI_OPERA:
piObj.programName = an;
n1 = ua.indexOf("/") + 1;
n2 = ua.indexOf(" ", n1);
piObj.programVersion = ua.substring(n1, n2);
piObj.OperaCompatibilityMode = an;
n1 = n2 + 2;
n2 = ua.indexOf(";", n1);
piObj.programPlatform = ua.substring(n1, n2);
piObj.programLanguage = navigator.browserLanguage;
break;
}
return piObj;
}


