// Inspired by base2 and Prototype => ejohn.org inheritance sample
(function(){
  var initializing = false, fnTest = /xyz/.test(function(){xyz;}) ? /\b_super\b/ : /.*/;

  // The base Base implementation (does nothing)
  this.Klass = function(){};
 
  // Create a new Base that inherits from this Base
   Klass.extend = function(prop) {
      var _super = this.prototype;
    
      // Instantiate a base Base (but only create the instance,
      // don't run the init constructor)
      initializing = true;
      var prototype = new this();
      initializing = false;
    
    
      // Copy the properties over onto the new prototype
      for (var name in prop) {
        // Check if we're overwriting an existing function
        prototype[name] = typeof prop[name] == "function" &&
         typeof _super[name] == "function" && fnTest.test(prop[name]) ?
         (function(name, fn){
            return function() {
               var tmp = this._super;
              
               // Add a new ._super() method that is the same method
               // but on the super-Base
               this._super = _super[name];
              
               // The method only need to be bound temporarily, so we
               // remove it when we're done executing
               var ret = fn.apply(this, arguments);       
               this._super = tmp;
              
               return ret;
            };
         })(name, prop[name]) :
         prop[name];
     }
    
     // The dummy Base constructor
     function Klass() {
       // All construction is actually done in the init method
       if ( !initializing && this.init )
         this.init.apply(this, arguments);
     }
    
     // Populate our constructed prototype object
     Klass.prototype = prototype;
     Klass.prototype.name = 'Klass';
    
     // Enforce the constructor to be what we expect
     Klass.constructor = Klass;
   
     // And make this Base extendable
     Klass.extend = arguments.callee;
    
     return Klass;
  };
})();


jQuery(document).ready(function() {
   

   

});