(function($){  
	$.confirmBox = function(options) {
		var defaults = {
			element: null,
			html: '',
			title: null,
			width: 240, 
			x: 0, 
			y: 0, 
			y_abs: false, 
			confirm_button: true, 
			cancel_button: true, 
			comment_field: true, 
			topbar: false, 
			confirm_light: true, 
			callback_ok: null,
			callback_cancel: null,
			callback_ok_arg: null,
			callback_cancel_arg: null,
			scrollarea: null
		};
		
		var opts = $.extend(defaults, options);
		if ($.confirmBox.blocked)	{
			return false;
		}
		
		var left = opts.x;
		var top  = opts.y;
		if (opts.element)	{
			var reference = opts.element;
		    while(reference){
		        if (opts.y_abs==false)	{
		        	top  += reference.offsetTop;
		        }
		        left += reference.offsetLeft;
		        reference = reference.offsetParent;
		    }
		}
		
		if (opts.y_abs==true)	{
			var scrollPos=0;
			if (typeof window.pageYOffset != 'undefined') {
			   scrollPos = window.pageYOffset;
			}
			else if (typeof document.compatMode != 'undefined' &&
			   document.compatMode != 'BackCompat') {
			   scrollPos = document.documentElement.scrollTop;
			}
			else if (typeof document.body != 'undefined') {
			   scrollPos = document.body.scrollTop;
			}
			top  += scrollPos;
		}
		
		if (opts.scrollarea && $("#"+opts.scrollarea).scrollTop())  {
        	top = top - $("#"+opts.scrollarea).scrollTop();
        }
        if (opts.scrollarea && $("#"+opts.scrollarea).scrollLeft()){
        	left = left - $("#"+opts.scrollarea).scrollLeft();
        }
		
		var _html = '<div id="confirm_light" style="Z-INDEX: 100; LEFT: 0px; WIDTH: 100%; POSITION: absolute; TOP: 0px; HEIGHT: 100%; BACKGROUND-COLOR:#4e5354; -moz-opacity: ' + (opts.confirm_light ? '0.5' : '0') + '; opacity: ' + (opts.confirm_light ? '0.5' : '0') + '; FILTER: alpha(opacity=' + (opts.confirm_light ? '50' : '0') + ');"></div>'
				+ '<div id="confirm_box" class="confirmbox" style="position:absolute; background-color:#dededd; left:'+ (left + 20) +'px; top:'+ top +'px; width:'+ opts.width +'px; '+ (opts.padding ? 'padding: '+ opts.padding : '') +'">'
				+ (opts.topbar ? '<div class="confirmbox_top" style="width:'+ (opts.width-1) +'px; height:15px;">' : '')
				+ (opts.topbar ? '<a href="javascript:void(0);"><img src="'+gfxpath+'/buttons/cancel.lo.gif" border="0" alt="Abbrechen" title="Abbrechen" onmouseover="javascript:rollOver(this,1);" onmouseout="javascript:rollOver(this,2);" onclick="javascript:$(\'#confirm_cancel\').click();$.confirmBox.close();hide(\'loading\')"></a>' : '')
				+ (opts.topbar ? '</div>' : '')
				+ (opts.title ? '<h2>'+ opts.title +'</h2>' : '')
				+ (opts.comment_field ? '<p><textarea id="confirm_textarea" name="confirm_textarea" class="i225x60">Bemerkung</textarea></p>' : '')
				+ opts.html
				+ '<span id="confirm_error"></span>'
				+ '<div class="spacerV10"></div>'
				+ (opts.confirm_button ? '<a href="javascript:void(0);"><img id="confirm_ok" src="'+gfxpath+'/buttons/weiter.lo.gif" border="0" width="77" height="27" alt="Weiter" title="Weiter" onmouseover="javascript:rollOver(this,1);" onmouseout="javascript:rollOver(this,2);"></a>' : '')
				+ (opts.confirm_button ? '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;' : '')
				+ (opts.cancel_button ? '<a href="javascript:void(0);"><img id="confirm_cancel" src="'+gfxpath+'/buttons/abbrechen.lo.gif" border="0" width="106" height="27" alt="Abbrechen" title="Abbrechen" onmouseover="javascript:rollOver(this,1);" onmouseout="javascript:rollOver(this,2);"></a>' : '')
				+ '</div>';
		
		$("BODY").append(_html);
		$("#confirm_textarea").focus().select();
		
		$("#confirm_textarea").focus( function() {
			$('#confirm_textarea').css({'background-color' : 'white'});
		});
		$("#Datumdemont").focus( function() {
			$('#Datumdemont').css({'background-color' : 'white'});
		});
		$("#Eingang_Stempelliste").focus( function() {
			$('#Eingang_Stempelliste').css({'background-color' : 'white'});
		});
		
		$("#confirm_cancel").click( function() {
			// opts.callback_cancel.apply(this); 
			if(opts.callback_cancel) {
				if(opts.callback_cancel_arg)	{
					opts.callback_cancel(opts.callback_cancel_arg); 
				}
				else	{
					opts.callback_cancel(); 
				}
			}
		});
		$("#confirm_ok").click( function() {
			if(opts.callback_ok) opts.callback_ok(opts.callback_ok_arg);
		});
		
	};
	$.confirmBox.close = function()	{
		$("#confirm_box").remove();
		$("#confirm_light").remove();
	}
	$.confirmBox.blocked = false;
	
	// Shortuct functions
	jConfirmbox = function(options) {
		$.confirmBox(options);
	}
	
})(jQuery);

//(function($) {
//    $.fn.later = function(msec, method) {
//        var that = this;
//        var args = Array.prototype.slice.apply(arguments, [2]);
//        if (typeof method === "string") {
//            method = that[method];
//        } else if (typeof method === "function") {
//            method = method;
//            args = [];
//        }
//        setTimeout(function () {
//            method.apply(that, args);
//        }, msec);
//        return that;
//    };
//})(jQuery);

// var cb = function () { return method.apply(context, arguments); }


