 /**
       * 3DzzDAppletScript.js
       *
       * This source code is a part of 3DzzD Web 3D engine you may use it as long as you provide the orignal source author and website and this comment unmodified
       *
       * @author bruno augier
       * @email bruno.augier@dzzd.net
       * @website http://dzzd.net/
       * @version 1.00 2007/12/03
  */
  
  var jvmInited=false;
  var imageLoad=new Image();
  imageLoad.src="INIT.GIF";
  var preloadingJar = new Array();
  var preloadedApplets = new Array();
  
  function loadApplet(targetAppletId,appletName,appletTag,loadTag,width,height)
  {

    if(!jvmInited)
		return;

	if(document.applets[appletName])
		return;

	var target=document.getElementById(targetAppletId);
	var html="";
	html+="<DIV STYLE=\"visibility:hidden\" ID=\""+targetAppletId+"APPLET\"></DIV>";
    html+="<TABLE ID=\""+targetAppletId+"LOADER\" cellSpacing=0 cellPadding=0 WIDTH=\""+width+"\" HEIGHT=\""+height+"\" STYLE=\"border:0\" >";
    html+="<TR><TD vAlign=\"center\" align=\"middle\" STYLE=\"border:0\">";
	html+="<DIV>";
	html+=loadTag;
	html+="</DIV>";
    html+="</TD></TR></TABLE>";	
	
	target.innerHTML=html;

	setTimeout("addAppletTag(\""+targetAppletId+"\",\""+appletTag+"\")",250);
	showAppletOnceStarted(targetAppletId,appletName,width,height);
  }
  
  function addAppletTag(targetAppletId,appletTag)
  {
	var target=document.getElementById(targetAppletId+"APPLET");
	target.innerHTML=appletTag;
  }
  
  function isAppletStarted(appletName)
  {
	if(document.applets.length==0)
		return false;
				
	//if(!document.getElementById(appletName))
		//return false;
	
	var result=false;
	try
	{
		result=eval("document."+appletName+".isActive");	
	}
	catch(e)
	{
		result=false;
	}
	
	return result;
  }

  function showAppletOnceStarted(targetAppletId,appletName,width,height)
  {
	if(!isAppletStarted(appletName))
	{
		setTimeout("showAppletOnceStarted(\""+targetAppletId+"\",\""+appletName+"\",\""+width+"\",\""+height+"\")",500);
		return;
	}
	setTimeout("showApplet(\""+targetAppletId+"\",\""+appletName+"\",\""+width+"\",\""+height+"\")",10);
  }
  
  function showApplet(targetAppletId,appletName,width,height)
  {
  
	var applet=document.applets[appletName];
	var loader=document.getElementById(targetAppletId+"LOADER");
	var loaded=document.getElementById(targetAppletId+"APPLET");
	applet.width=width;
	applet.height=height;
	applet.style.width=width;
	applet.style.height=height;
	loader.style.display="none";
	loaded.style.visibility="visible";
  }

  var initJVMCount=0;  
  /**
       * Initialise Java JVM, this may hang few seconds
    */
  function loadJVM()
  {
       if(jvmInited)
			return;
			
       if(initJVMCount>15)
       {
            if(confirm("Java Plugin requiered, do you want to instal Java Plugin ?"))
            window.location.href="http://java.com/";
            jvmInited=true;
            return;
       }
	   
       var f=window.frames["JVMLOADER"];
       if(!f)
       {
            document.body.innerHTML+="<IFRAME NAME=\"JVMLOADER\" WIDTH=0 HEIGHT=0 STYLE=\"border:0\"></IFRAME>";
            f=window.frames["JVMLOADER"];
            f.document.open("text/html");
            var iframeHTML="";
            iframeHTML+="<HTML><BODY onload=\"window.parent.jvmInited=true\" SCROLL=NO STYLE=\"margin:0\" >";
            iframeHTML+="<APPLET WIDTH=0 HEIGHT=0 ";
            iframeHTML+=" CODE = \"java.applet.Applet\" ";
            iframeHTML+="</APPLET>";
            iframeHTML+="</BODY></HTML>";
            f.document.write(iframeHTML);
            f.document.close();
       }
	   
       if(f.document.applets.length==0)
       {
            setTimeout("loadJVM()",2000);
            initJVMCount++;
            return;
       }
	   
       f.document.open("text/html");
       var iframeHTML="";
       iframeHTML+="<HTML><BODY SCROLL=NO STYLE=\"margin:0\" >";
       iframeHTML+="</BODY></HTML>";
       f.document.write(iframeHTML);
       f.document.close();
	   jvmInited=true;
  }
 