/**
 * @author	M. Privat
 */

import java.awt.*;
import java.applet.*;
import com.sun.java.swing.*;
import java.net.*;
import java.io.*;
import java.util.*;

public class appletLoader {
	URL url;
	Object c;

	public appletLoader(String u) {
		super();

		try {
			url = new URL(u);
			NetworkClassLoader loader = new NetworkClassLoader(new URL(
													url.getProtocol(), url.getHost(),
													getDir(url.getFile())));
      	c = loader.loadClass(className(u), true).newInstance();
		}
		catch(Exception ignore) {
			System.err.println("Exception raised");
		}
		catch(Error ignore) {
			System.err.println("This applet cannot be launched by this version");
		}
	}

	public Applet getApplet() {
		if(c instanceof Applet) {
			return (Applet)c;
		}
		else return null;
	}

	private String className(String s) {
		String tmp = s;
		int idx=0;

		if(!s.endsWith(".class")) return null;

		if((idx = s.lastIndexOf('/')) != -1) {
			tmp = tmp.substring(idx+1);
		}

		return tmp.substring(0, tmp.indexOf(".class"));
	}

	private String getDir(String s) {
		if(s.indexOf('/')==-1) return null;

		return s.substring(0, s.lastIndexOf("/"));
	}
}

