var N=navigator.appName;
var V=navigator.appVersion;
var version="?";
var nom=N;
var os="ALL";
var osDetected="?";
var selectedLanguage="?";
var navigatorLanguage="?";
var url;
var paramUrl = new Array();

var solutionArray = new Array;
var solName="ALL";

/**
 * This function allow to add a solution
 * @param solutionName Name of the solution
 * @param layerList List of layers
 */
		
function addSolution(OS,solutionName, layerList)
{
	var solution = new Array;
	solution["OS"] = OS;
	solution["solutionName"] = solutionName;
	solution["layerList"] = layerList;
	solutionArray[solutionArray.length] = solution;
}

function initPtp()
{
  //ALL
        addSolution("ALL","ALL","PSP_WIN,PSP_LINUX,POWERKIT_WIN,PSP_MAC,PSP_NET,PSP_IBMAIX,PSP_SUNSPARC,PSP_SUNPC,PSP_HPUX,PSP_SCO");
      	addSolution("ALL","PSP","PSP_WIN,PSP_LINUX,PSP_MAC,PSP_NET,PSP_IBMAIX,PSP_SUNSPARC,PSP_SUNPC,PSP_HPUX,PSP_SCO");
      	addSolution("ALL","POWERKIT","POWERKIT_WIN");
      	
  //WINDOWS   	
        addSolution("WIN","ALL","PSP_WIN,POWERKIT_WIN");
      	addSolution("WIN","PSP","PSP_WIN");
      	addSolution("WIN","POWERKIT","POWERKIT_WIN");
      	
  //LINUX
      	addSolution("LINUX","PSP","PSP_LINUX");
      	addSolution("LINUX","ALL","PSP_LINUX");
      	
  //MAC OS
      	addSolution("MAC","ALL","PSP_MAC");
      	addSolution("MAC","PSP","PSP_MAC");
  
  //NETWARE
        addSolution("NET","PSP","PSP_NET");
      	addSolution("NET","ALL","PSP_NET");
        
  //IBM AIX
        addSolution("IBMAIX","PSP","PSP_IBMAIX");
      	addSolution("IBMAIX","ALL","PSP_IBMAIX");
        
  //SUN Solaris SPARC
        addSolution("SUNSPARC","PSP","PSP_SUNSPARC");
      	addSolution("SUNSPARC","ALL","PSP_SUNSPARC");
        
  //SUN Solaris PC
        addSolution("SUNPC","PSP","PSP_SUNPC");
      	addSolution("SUNPC","ALL","PSP_SUNPC");
        
  //HP-UX
        addSolution("HPUX","PSP","PSP_HPUX");
      	addSolution("HPUX","ALL","PSP_HPUX");
        
  //SCO Open Server et Unixware
        addSolution("SCO","PSP","PSP_SCO");
      	addSolution("SCO","ALL","PSP_SCO");
        
        paramUrl = getUrlParam();
        os = paramUrl["os"];
        solName = paramUrl["sol"];
        if(!solName)
        {
          solName="ALL";
        }
        if(!os)
        {
          detectParamNav();
        }
        if (parent.tab.document.getElementById("test") != null)
        {
          showMenu(os);
        }
        //setTimeout("showMenu(os)",3000); // permet d'attendre la fin du chargement le la frame array.htm
}

function initNet()
{
 
    //ALL
      	addSolution("ALL","NC","NC,NMC,NMP_WIN");
      	addSolution("ALL","NMC","NC,NMC");
      	addSolution("ALL","NMP","NC,NMP_WIN");
      	addSolution("ALL","PR","NSM_WIN,NSM_LINUX,NSM_MAC,NSM_NET,NSM_IBMAIX,NSM_HPUX,NSM_SUNPC,NSM_SUNSPARC,NSM_OTHEROS");
      	addSolution("ALL","NSM","NSM_WIN,NSM_LINUX,NSM_MAC,NSM_NET,NSM_IBMAIX,NSM_HPUX,NSM_SUNPC,NSM_SUNSPARC,NSM_OTHEROS");
      	addSolution("ALL","SUP","SUP");
      	//addSolution("ALL","WB","SUP");
      	addSolution("ALL","NMS","SUP");
      	addSolution("ALL","EPM","SUP");
      	addSolution("ALL","IPM","SUP");/*Ajout de l'IPM 17/06/2009*/
        addSolution("ALL","ALL","NC,NMC,NMP_WIN,NSM_WIN,NSM_LINUX,NSM_MAC,NSM_NET,NSM_IBMAIX,NSM_HPUX,NSM_SUNPC,NSM_SUNSPARC,NSM_OTHEROS,SUP");
 
           
    //Windows
      	addSolution("WIN","NC","NC,NMC,NMP_WIN");
      	addSolution("WIN","NMC","NC,NMC");
      	addSolution("WIN","NMP","NC,NMP_WIN");
      	addSolution("WIN","PR","NSM_WIN");
      	addSolution("WIN","NSM","NSM_WIN");
      	addSolution("WIN","SUP","SUP");
      	/*addSolution("WIN","WB","SUP");*/
      	addSolution("WIN","NMS","SUP");
      	addSolution("WIN","EPM","SUP");
      	addSolution("WIN","IPM","SUP");/*Ajout de l'IPM 17/06/2009"NC,NMC,NMP_WIN,NSM_WIN,SUP"*/
        addSolution("WIN","ALL","NC,NMC,NMP_WIN,NSM_WIN,SUP");
      	
    //Linux
        addSolution("LINUX","NC","NC,NMC");
      	addSolution("LINUX","NMC","NC,NMC");
      	addSolution("LINUX","PR","NSM_LINUX");
      	addSolution("LINUX","NSM","NSM_LINUX");
      	addSolution("LINUX","SUP","SUP");
      	/*addSolution("LINUX","WB","SUP");*/
      	addSolution("LINUX","EPM","SUP");
        addSolution("LINUX","ALL","NC,NMC,NSM_LINUX,SUP");
      	
    //Mac OS
        addSolution("MAC","NC","NC,NMC");
      	addSolution("MAC","NMC","NC,NMC");
      	addSolution("MAC","PR","NSM_MAC");
      	addSolution("MAC","NSM","NSM_MAC");
      	addSolution("MAC","SUP","SUP");
      	/*addSolution("MAC","WB","SUP");*/
      	addSolution("ALL","EPM","SUP");
        addSolution("MAC","ALL","NC,NMC,NSM_MAC,SUP");
     
    //Netware
        addSolution("NET","NC","NC,NMC");
      	addSolution("NET","NMC","NC,NMC");
      	addSolution("NET","PR","NSM_NET");
      	addSolution("NET","NSM","NSM_NET");
      	addSolution("NET","SUP","SUP");
      	//addSolution("NET","WB","SUP");
      	addSolution("NET","EPM","SUP");
        addSolution("NET","ALL","NC,NMC,NSM_NET,SUP");
    
    //IBM AIX
        addSolution("IBMAIX","NC","NC,NMC");
      	addSolution("IBMAIX","NMC","NC,NMC");
      	addSolution("IBMAIX","PR","NSM_IBMAIX");
      	addSolution("IBMAIX","NSM","NSM_IBMAIX");
      	addSolution("IBMAIX","SUP","SUP");
      	//addSolution("IBMAIX","WB","SUP");
      	addSolution("IBMAIX","NMS","SUP");
      	addSolution("IBMAIX","EPM","SUP");
        addSolution("IBMAIX","ALL","NC,NMC,NSM_IBMAIX,SUP");
    
    //HP-UX
        addSolution("HPUX","NC","NC,NMC");
      	addSolution("HPUX","NMC","NC,NMC");
      	addSolution("HPUX","PR","NSM_HPUX");
      	addSolution("HPUX","NSM","NSM_HPUX");
      	addSolution("HPUX","SUP","SUP");
      	//addSolution("HPUX","WB","SUP");
      	addSolution("HPUX","NMS","SUP");
      	addSolution("HPUX","EPM","SUP");
        addSolution("HPUX","ALL","NC,NMC,NSM_HPUX,SUP");
    
    //SUN Solaris PC  
        addSolution("SUNPC","NC","NC,NMC");
      	addSolution("SUNPC","NMC","NC,NMC");
      	addSolution("SUNPC","PR","NSM_SUNPC");
      	addSolution("SUNPC","NSM","NSM_SUNPC");
      	addSolution("SUNPC","SUP","SUP");
      	//addSolution("SUNPC","WB","SUP");
      	addSolution("SUNPC","EPM","SUP");
        addSolution("SUNPC","ALL","NC,NMC,NSM_SUNPC,SUP");
        
    //SUN Solaris SPARC  
        addSolution("SUNSPARC","NC","NC,NMC");
      	addSolution("SUNSPARC","NMC","NC,NMC");
      	addSolution("SUNSPARC","PR","NSM_SUNSPARC");
      	addSolution("SUNSPARC","NSM","NSM_SUNSPARC");
      	addSolution("SUNSPARC","SUP","SUP");
      	//addSolution("SUNSPARC","WB","SUP");
      	//addSolution("SUNSPARC","EPM","SUP");
        addSolution("SUNSPARC","ALL","NC,NMC,NSM_SUNSPARC,SUP");
    
    //Other OS Java2 Compatible
        addSolution("OTHEROS","NC","NC,NMC");
      	addSolution("OTHEROS","NMC","NC,NMC");
      	addSolution("OTHEROS","PR","NSM_OTHEROS");
      	addSolution("OTHEROS","NSM","NSM_OTHEROS");
      	addSolution("OTHEROS","SUP","SUP");
      	//addSolution("OTHEROS","WB","SUP");
      	addSolution("OTHEROS","EPM","SUP");
        addSolution("OTHEROS","ALL","NC,NMC,NSM_OTHEROS,SUP");

    //end of function    
        paramUrl = getUrlParam();
        os = paramUrl["os"];
        solName = paramUrl["sol"];
        if(!solName)
        {
          solName="ALL";
        }
        if(!os)
        {
          detectParamNav();
        }
        if (parent.tab.document.getElementById("test") != null)
        {
          showMenu(os);
        }
        //setTimeout("showMenu(os)",3000);
}

function getUrlParam()
{
  url = parent.location.href;
  var exp=new RegExp("[&?]+","g");
	var exp2=new RegExp("[=]+","g");
	var exp3=new RegExp("[/]+","g");
	var tabNom=url.split(exp);
  url = tabNom[0];
  url = url.split(exp3);
  url = url[url.length-1];
  var	tabParam=new Array();
	if (tabNom!=null)
  {
		for(var i=1;i<tabNom.length;i++)
   	{
      var tabTemp=tabNom[i].split(exp2);
			tabParam[tabTemp[0]]=tabTemp[1];
		}
	}
	return tabParam;
}


/**
 * Hide all layers and show the layer with the name passed in parameter.
 * @param solutionName The name of the layer
 */
		 
function showLayer(solutionName) 
{
	var findLayer=false;
  solName=solutionName;
	//os=traitement(osSelected);
  if(parent.menu.document.getElementById("selector") != null)
  {
    osSelected = parent.menu.document.getElementById("selector").value;
  }
  else
  {
    osSelected="ALL";
  }
  hideLayer();
	for(var i=0;i<solutionArray.length; i++)
	{
 		if(solutionArray[i]["solutionName"]==solutionName && solutionArray[i]["OS"]==osSelected)
		{
 			layerName=solutionArray[i]["layerList"];
			layerName=layerName.split(","); ///separate layers name (DIV1,DIV2)
			for(var j=0;j<layerName.length;j++)
			{
				if(parent.tab.document.getElementById(layerName[j]) != null)
				{
          parent.tab.document.getElementById(layerName[j]).style.display="block"; //show the layer
				  findLayer=true;
				}
			}
		}  
	}
	if(!findLayer)
	{
    showLayer("ALL");
  }
}


function showMenu(osSelected)
{  
  var findOs=false;
	if(document.getElementById(osSelected) != null)
  {
    document.getElementById(osSelected).selected=true;
  }
  hideMenu();
	for(var i=0;i<solutionArray.length; i++)
	{
		if(solutionArray[i]["OS"]==osSelected)
		{
			if(parent.menu.document.getElementById(solutionArray[i]["solutionName"]) != null)
			{
        parent.menu.document.getElementById(solutionArray[i]["solutionName"]).style.display="block";
			  findOs=true;
			}
		}
	}
	if(!findOs)
	{
    showMenu("ALL");
  }
  else
  {
    showLayer(solName);
  }
}

  
function hideMenu()
{
	for(var i=0;i<solutionArray.length; i++)
	{
		if(parent.menu.document.getElementById(solutionArray[i]["solutionName"]) != null)
		{
      parent.menu.document.getElementById(solutionArray[i]["solutionName"]).style.display="none";
    }
	}
}

/**
 * hide all layers
 */

function hideLayer()
{
  for(var i=0;i<solutionArray.length; i++)
	{
		layerName=solutionArray[i]["layerList"];
		layerName=layerName.split(",");  //separate layers name (DIV1,DIV2)
		for(var j=0;j<layerName.length;j++)
		{
			if(layerName[j]!="" && layerName[j]!=null)
			{
        if(parent.tab.document.getElementById(layerName[j])!=null)
        {
          parent.tab.document.getElementById(layerName[j]).style.display="none"; //hide the layer
        }
      }
		}
	}
}

function detectParamNav()
{
  if (N=="Microsoft Internet Explorer") 
	{
		navigatorLanguage=navigator.systemLanguage;
		version=V.substring(V.indexOf("MSIE",0)+5,V.indexOf(";",V.indexOf("MSIE",0)));
		if (V.indexOf("Win",0)>0) 
		{
			if ( V.indexOf(";",V.indexOf("Win",0)) > 0 ) 
			{
				osDetected=V.substring(V.indexOf("Win",0),V.indexOf(";",V.indexOf("Win",0)));
			} else 
			{
				osDetected=V.substring(V.indexOf("Win",0),V.indexOf(")",V.indexOf("Win",0)));
			}
		}
		if (V.indexOf("Mac",0)>0) 
		{
			osDetected="Macintosh";
			version=V.substring(V.indexOf("MSIE",0)+5,V.indexOf("?",V.indexOf("MSIE",0)));
		}
	}
	if (N=="Opera") 
	{
		navigatorLanguage=navigator.language;
		version=V.substring(0,V.indexOf("(",0));
		osDetected=V.substring(V.indexOf("(",0)+1,V.indexOf(";",0));	
	}
	if (N=="Netscape") 
	{
		navigatorLanguage=navigator.language;
		if (navigator.vendor=="")  // Mozilla
		{
			version=(V.substring(0,V.indexOf("(",0)));
			nom="Mozilla";
			if (V.indexOf("Mac",0)>0) 
			{
				osDetected="Macintosh";
			}
			if (V.indexOf("Linux",0)>0) 
			{
				osDetected="Linux";
			}
			if (V.indexOf("Win",0)>0) 
			{
				osDetected=V.substring(V.indexOf("Win",0),V.indexOf(";",V.indexOf("Win",0)));
			}
			if (version==5) 
			{
				version="1";
			}
			if (navigator.oscpu) 
			{
				osDetected=navigator.oscpu;
			}
		}else 	// NS 4 ou 6
		{
      version=(V.substring(0,V.indexOf("(",0)));
			if (V.indexOf("Mac",0)>0) 
			{
				osDetected="Macintosh";
			}
			if (V.indexOf("Linux",0)>0) 
			{
				osDetected="Linux";
			}
			if (V.indexOf("Win",0)>0) 
			{
				osDetected=V.substring(V.indexOf("Win",0),V.indexOf(";",V.indexOf("Win",0)));
			}
			if (version==5) 
			{
				version="6.0";
				if (navigator.vendorSub!="")
        {
          version=navigator.vendorSub;
        }
			}
			if (navigator.oscpu) 
			{
				osDetected=navigator.oscpu;
			}
		}
	}
	V=V.toLowerCase();
	//alert(V);
	if(V.match("konqueror"))
	{
    var expression=new RegExp("linux");
    if(V.match(expression))
    {
      osDetected="Linux";
    }
  }
  os = traitement(osDetected);
}

function traitement(osSelected)
{
  osSelected = osSelected.toLowerCase();
  if(osSelected.substring(0,3)=="win")
  {
    osSelected="WIN";
  }
  if(osSelected.substring(0,3)=="lin")
  {
    osSelected="LINUX";
  }
  if(osSelected.substring(0,3)=="mac" || osSelected.substring(0,3)=="PPC")
  {
    osSelected="MAC";
  }
  if(osSelected.substring(0,2)=="hp")
  {
    osSelected="HPUX";
  }
  return osSelected;
}

