	YAHOO.namespace('BOF');

	function initComplexDialog() {

		YAHOO.BOF.complexDialog = new YAHOO.widget.Dialog("complex_dialog",
	    {
	        //defaults
	        hideaftersubmit : false,
	        fixedcenter : true,
	        draggable:false,
	        close: true,
	        constraintoviewport : true,
	        modal: true,
	        width : "600px"
	    }
	    );

	    
		YAHOO.BOF.complexDialog.doClose = function() {
			YAHOO.BOF.complexDialog.hide();
			YAHOO.BOF.complexDialog.destroy();
		}
		
		YAHOO.BOF.complexDialog.doMemClose = function(strNumber, strDetail) {
			YAHOO.BOF.complexDialog.doUpdate(strNumber, strDetail);
			YAHOO.BOF.complexDialog.doClose();
		}
		
		YAHOO.BOF.complexDialog.doUpdate = function(strNumber, strDetail) {
			elmReturn = document.getElementById(YAHOO.BOF.strReturn);
			elmDetail = document.getElementById(YAHOO.BOF.strDetail);
			
			elmReturn.value = strNumber;
			elmDetail.innerHTML = strDetail;
		}
	
	    YAHOO.BOF.complexDialog.callback = { success: YAHOO.BOF.complexDialog_Success, failure: YAHOO.BOF.complexDialog_Failure };
	}
	
	YAHOO.BOF.complexDialog_Success = function(o) {
	    var parsedResponse = o.responseText;
	    if (parsedResponse == "closeDialog") {
	        YAHOO.BOF.complexDialog.hide();
	    }
	    else {
	        YAHOO.BOF.complexDialog.setBody(parsedResponse);
	    }
	};
	
	var complexDialogStart_callback = {
	    success : function(o) {
	        var response = o.responseText;
	        
	        if (response != "failure") {
	            YAHOO.BOF.complexDialog.setBody(response);
	            YAHOO.BOF.complexDialog.render(document.body);
	            YAHOO.BOF.complexDialog.show();
        	}
	    },
	    failure: function(o) {
	        alert("failure");
	        YAHOO.BOF.complexDialog.destroy();
	    }
	}
	
	function complexDialogStart(e, strUrl)
	{
	    initComplexDialog();
	    var conn = YAHOO.util.Connect.asyncRequest("POST", strUrl, complexDialogStart_callback);
	}
