/**
	 * Check if a given plugin exist
	 *
	 * @access public static
	 * @param int $id the plugin id
	 * @return bool $existed true if plugin exists, else false
	 * @since 1.0
	 */
	public static function isExists($id)
	{
		SLS_PluginsManager::returnPluginsXML();
		$code = array_shift(SLS_PluginsManager::$_pluginsXML->getTags('//plugins/plugin[@id="'.$id.'"]/@code'));
		if (empty($code))
			return false;
		return true;
	}
	/**
	 * Constructor
	 *
	 * @access protected
	 * @param object $plugin the plugin object
	 * @since 1.0
	 */
	protected function __construct($plugin)
	{
		$this->_className = get_class($plugin);
		$this->_code = strtolower($this->_className);
		$pluginsXML = SLS_PluginsManager::returnPluginsXML();
		if (count($pluginsXML->getTags("//plugins/plugin[@code='".$this->_code."']/@id")) == 0)
			SLS_Tracing::addTrace(new Exception("Cannot find plugin Configuration for ".$this->_className));				
		else 
		{
			$this->_id = array_shift($pluginsXML->getTags("//plugins/plugin[@code='".$this->_code."']/@id"));
			$this->_pluginManager = new SLS_PluginsManager($this->_id);
			$this->_xml = $this->_pluginManager->getXML();
			$this->_version = $this->_pluginManager->_version;
		}
	}