if(typeof window.com == "undefined"){
	window.com = {};
}
if(typeof window.com.mapbar == "undefined"){
	window.com.mapbar = {};
}
if(typeof window.com.mapbar.aop == "undefined"){
	window.com.mapbar.aop = {};
}
/**
 * aop
 */
(function(package){
	jQuery.extend(package, {
		addBefore : function(obj, methodName, func){
			if(typeof obj != "undefined" && typeof methodName == "string" 
				&& typeof func == "function" && typeof obj[methodName] == "function"){
				
				var old = obj[methodName];
				obj[methodName] = function() {
					func.apply(this, arguments);
					var result = old.apply(this, arguments);
					return result;
				};
				return old;
			}
		},
		addAfter : function(obj, methodName, func){
			if(typeof obj != "undefined" && typeof methodName == "string" 
				&& typeof func == "function" && typeof obj[methodName] == "function"){
				
				var old = obj[methodName];
				
				obj[methodName] = function() {
					var result = old.apply(this, arguments);
					func.apply(this, arguments);
					return result;
				};
				
				return old;
			}
		}
	});
	
})(com.mapbar.aop);