﻿//MooTools, My Object Oriented Javascript Tools. Copyright (c) 2006 Valerio Proietti, <http://mad4milk.net>, MIT Style License.
var Class=function(properties){var klass=function(){for (var p in this){if (this[p]) this[p]._proto_=this;}
if (arguments[0] !=
'noinit'
&&this.initialize) return this.initialize.apply(this,arguments);};klass.extend=this.extend;klass.implement=this.implement;klass.prototype=properties;return klass;};
Class.empty=function(){};
Class.create=function(properties){return new Class(properties);};Class.prototype={
extend:function(properties){var pr0t0typ3=new this(
'noinit'
);for (var property in properties){var previous=pr0t0typ3[property];var current=properties[property];if (previous&&previous !=current) current=previous.parentize(current)||current;pr0t0typ3[property]=current;}
return new Class(pr0t0typ3);},
implement:function(properties){for (var property in properties) this.prototype[property]=properties[property];}};
Object.extend=function(){var args=arguments;if (args[1]) args=[args[0],args[1]];else args=[this,args[0]];for (var property in args[1]) args[0][property]=args[1][property];return args[0];};
Object.Native=function(){for (var i=0;i<arguments.length;i++) arguments[i].extend=Class.prototype.implement;};new Object.Native(Function,Array,String,Number);Function.extend({parentize:function(current){var previous=this;return function(){this.parent=previous;return current.apply(this,arguments);};}});
