<?php
/**
 * Description of class
 *
 * @author wkl
 */
class msgQueue {

	const RETVAL_ARRAY  = 0;
	const RETVAL_STRING = 1; // (default)

	private static $_instance;

	private $_error = array();
	private $_success = array();

	protected function __construct() {
		$this->_error = array();
		$this->_success = array();
	}
	private function __clone() { throw new Exception('cloning Class '.__CLASS__.' is illegal'); }

    public static function handle()
    {
        if (!isset(self::$_instance)) {
            $c = __CLASS__;
            self::$_instance = new $c;
        }
        return self::$_instance;
	}

	public static function add($message = '', $type = false)
	{
		if($type)
		{
			self::handle()->_success[] = $message;
		}else
		{
			self::handle()->_error[] = $message;
		}
	}

	public static function clear()
	{
		self::handle()->_error = array();
		self::handle()->_success = array();
	}

	public static function isEmpty()
	{
		return (sizeof(self::handle()->_success) == 0 && sizeof(self::handle()->_error) == 0 );
	}

	public static function getError($retval_type = self::RETVAL_STRING)
	{
		if(sizeof(self::handle()->_error))
		{
			if($retval_type == self::RETVAL_STRING)
			{
				return implode('<br />', self::handle()->_error);
			}else
			{
				return self::handle()->_error;
			}
		}
	}

	public static function getSuccess($retval_type = self::RETVAL_STRING)
	{
		if(sizeof(self::handle()->_success))
		{
			if($retval_type == self::RETVAL_STRING)
			{
				return implode('<br />', self::handle()->_success);
			}else
			{
				return self::handle()->_success;
			}
		}
	}


}
