(function(){
	var errorMsg = function(element,error,options){
		var options = options||{};
		options = {
			report: typeof options.report !='undefined'?options.report:false,
			console: typeof options.console != 'undefined'?options.console:false
		}
		if (!options.report)
			errorMsg.log[errorMsg.log.length] = {
				reportFrom: element,
				errorMessage: error,
				optionsProvided: options
			};
		if(window.console) console.log(options.report?$.extend({
			title: 'Report Log'
		},errorMsg.log):error);
		if (options.console){
			$(console).append($('<div class="error_line"/>').html(error));
		}
	};
	errorMsg.log = [];
	jQuery.extend({
		error : function(e){
			var m = null, options = arguments[1]||e||false;
			if(e && typeof errorMsg != 'undefined'){
				errorMsg(this,e,options);
			}
			return this || m;
		}
	});
})();

