<?php
require_once "util/Config.php";
		
class ClassLoader {
	static function checkDir($dir, $classname) {
		//print ("ClassLoader.checkDir: ".$dir);
		if (! is_dir($dir)) return false;
		$dh  = opendir($dir);
		while (false !== ($canidate = readdir($dh))) {
			if (is_dir("$dir/$canidate")) {
				if(file_exists("$dir/$canidate/$classname.php")) {
					include("$dir/$canidate/$classname.php");
					return true;
				}
				if(file_exists("$dir/$canidate/DataTypes/$classname.php")) {
					include("$dir/$canidate/DataTypes/$classname.php");
					return true;
				}
			}
		}
		return false;
	}
	static function autoload ($classname) {
/*
		// check application dir in configuration
		$config = Config::getInstance();
		$dir = $config->getConfig("ApplicationPath");
*/
		$dirs = explode(":", get_include_path());
		foreach ($dirs as $dir) {
			if (self::checkDir($dir, $classname)) return;
		}
		// evaluate base dir
		$dir = preg_replace("/.util.*/", "", __FILE__);
		self::checkDir($dir, $classname);
	}
}