(function(){
	var initializing = false, fnTest = /xyz/.test(function(){xyz;}) ? /\b_super\b/ : /.*/;
	this.Class = function(){};
	Class.extend = function(prop) {
		var _super = this.prototype;
		initializing = true;
		var prototype = new this();
		initializing = false;
		for (var name in prop) {
			prototype[name] = typeof prop[name] == "function" &&
				typeof _super[name] == "function" && fnTest.test(prop[name]) ?
				(function(name, fn){
					return function() {
						var tmp = this._super;
						this._super = _super[name];
						var ret = fn.apply(this, arguments);			 
						this._super = tmp;
					 
						return ret;
					};
				})(name, prop[name]) :
				prop[name];
		}
		function Class() {
			if ( !initializing && this.init )
				this.init.apply(this, arguments);
		}
		Class.prototype = prototype;
		Class.constructor = Class;
		Class.extend = arguments.callee;
		return Class;
	};
})();
function createNamespace (namespace) {
	namespace = namespace.split('.');
	if (!window[namespace[0]]) {
		window[namespace[0]] = {};
	} 
	var strFullNamespace = namespace[0];
	for (var i = 1; i < namespace.length; i++) {
		strFullNamespace += "." + namespace[i];
		eval("if(!window." + strFullNamespace + ")window." + strFullNamespace + "={};");
	}
}
createNamespace('RmjmBase.classes');
RmjmBase.classes.commonPage = Class.extend({
	init: function() {
		// nothing common
	}
}); 
$.fn.makeAbsolute = function(rebase) {
	return this.each(function() {
		var el = $(this);
		var pos = el.position();
		el.css({ position: "absolute",
			marginLeft: 0, marginTop: 0,
			top: pos.top, left: pos.left });
		if (rebase)
			el.remove().appendTo("body");
	});
}
