/* <gslb_version version="V1.1.0" /> */
/* Copyright © GalaSoft Laurent Bugnion 2007 */

//*****************************************************************************
//* gslb.Object.js
//*****************************************************************************
//* Project Name            : Utilities
//* Class Name              : Object
//* Tested Targets          : Firefox 2, Internet Explorer 7
//* Language/Compiler       : ECMAScript V3
//* Author                  : Laurent Bugnion
//* Created                 : 20.01.2007
//*****************************************************************************
//* Description:
//* Basic object behavior, inheritance, delegates.
//* Last Base Level: BL0002
//*****************************************************************************

//*****************************************************************************
//* Imports *******************************************************************
//*****************************************************************************

// using none

// Create namespace
if ( !window.gslb )
{
  window.gslb = {};
}

//*****************************************************************************
//* Constructor ***************************************************************
//*****************************************************************************

gslb.Object = function()
{
}

//*****************************************************************************
//* Constants *****************************************************************
//*****************************************************************************

/// <summary type="String">
/// This class's name.
/// </summary>
gslb.Object._NAME = "Object";
/// <summary type="String">
/// This class's version.
/// </summary>
gslb.Object._VERSION = "V1.1.0";
/// <summary type="String">
/// This class's date.
/// </summary>
gslb.Object._DATE = "17.11.2007";

//*****************************************************************************
//* Static methods ************************************************************
//*****************************************************************************

// ----------------------------------------------------------------------------
gslb.Object.extend = function( Derived, Base )
{
    function Inheritance() {}

    Inheritance.prototype = Base.prototype;

    Derived.prototype = new Inheritance();
    Derived.prototype.constructor = Derived;
    Derived.Base = Base.prototype;
    Derived.Base.fnConstructor = Base;
}

// ----------------------------------------------------------------------------
gslb.Object.createDelegate = function(instance, method)
{
    return function()
    {
        return method.apply(instance, arguments);
    }
}
//*****************************************************************************
//* Methods *******************************************************************
//*****************************************************************************

// ----------------------------------------------------------------------------
