(function($){
	 $.dialogExt = {
		default_settings : {
			modal:true,
			draggable:false,
			width:'auto',
			minWidth: 300,
			maxWidth: 800,
			maxHeight: 600,
			fix_png:true,
			container_class:""
		}
	 };
	 
	 $.dialogUrl = function(url, params){
		 	var options = $.extend({}, $.dialogExt.default_settings, params);
		 	if($("#url-dialog-container").length==0){
		 		$('<div id="url-dialog-container" class="url-dialog-container ' + options.container_class + '"></div>').appendTo("body");
		 	}
		 	$.ajax({
		 		url:url, 
		 		success: function(data){
					if(title = data.match(/^<title>(.+?)<\/title>/)){
						title = title[1];
					}else{
						title = "Ajax Content";
					}
					if(typeof options.title == "undefined"){
						options.title = title;
					}
			 		data = data.replace(/^<title>.+?<\/title>/,"");		
			 		var dlg_container = $("#url-dialog-container"); 
			 		dlg_container.html("").html(data).dialog(options).dialog("option",options).dialog("open");
					if(options.fix_png && typeof jQuery.fn.pngFix != "undefined"){
						dlg_container.pngFix();
					}
					if(options.width=='auto'){
						// fixed auto side title bar in IE6/7
						if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)){
							var ieversion=new Number(RegExp.$1) // capture x.x portion and store as a number
							if(ieversion<=6){
								var width = $("#url-dialog-container").width();					
								dlg_container.dialog('option', 'width', width + 30)
								.dialog('option', 'position', 'center');
							}else{
								var width = dlg_container.parents(".ui-dialog:first").width();					
								dlg_container.dialog('option', 'width', width + 10);							
							}
						}
					}
					dlg_container.find("input[type='text']").focus();
		 		}
		 	});
	};
	
	$.confirm = function(message, callback, args, options) {
        var $dialog = $("#util-confirm-dlg");
        if ($dialog.length == 0) {
            $("body").append('<div id="util-confirm-dlg"></div>');
            $dialog = $("#util-confirm-dlg").dialog({ modal: true, title: 'Please Confirm!!!' });
        }
        $dialog.html("");
        $dialog.append('<h3 class="confirm-message">' + message + '</h3>');
        if (options != null) {
            $dialog.append('<div class="confirm-options"><div>');
            var $options = $dialog.find(".confirm-options:first");
            for (var idx_opt in options) {
                $options.append('<label class="confirm-option"><input type="radio" name="confirm_option" value="'
                                    + idx_opt + '"/>' + options[idx_opt] + '</label><br/>');
            }
            $options.find(".confirm-option input:first").attr("checked", "checked")
        }
        $dialog.dialog('option', 'buttons',
            { "Cancel": function() { $(this).dialog("close"); },
                "OK": function() {
                    $(this).dialog("close");
                    if (callback) {
                        callback(args, $dialog.find(".confirm-option input:checked:first").val());
                    }
                }
            });
        return $dialog.dialog("open");
    };	
	
	$.closeDialog = function(ref){
		$(ref).parents(".ui-dialog-content:first").dialog("close");
	}
})(jQuery);
