var AUF = {
	frmName: '',
	target: '',
	frameName: '__auf_frame',
	onCompleted: null,
	onSubmit: null,
	debug: false,
	
	response: function()
	{
	    var frame = $('#'+AUF.frameName)[0];
	    var result = '';
	    if(frame.contentWindow)
	    {
	        result = frame.contentWindow.document.body.innerHTML;
	    }
	    else if(frame.document)
	    {
	        result = frame.document.body.innerHTML;
	    }
	    
	    return result;
	},
	
	jsonResponse: function()
	{
	    var result = AUF.response();
	    
	    if(result == '') return null;
	    
	    eval('var obj = ' + result + ';');
	    
	    return obj;
	},
	
	initFrame: function()
	{
		if($('#' + AUF.frameName).length == 0)
		{
			var d = document.createElement('DIV');
			if(!AUF.debug)
			{
				d.innerHTML = '<iframe id="' + AUF.frameName + '" name="' + AUF.frameName + '" style="display:none;" src="about:blank"></iframe>';
			}
			else
			{
			    d.innerHTML = '<iframe id="' + AUF.frameName + '" name="' + AUF.frameName + '" src="about:blank"></iframe>';
			}
			document.body.appendChild(d);
		}
		
		if(AUF.debug)
		{
			$('#'+AUF.frameName).show();
		}
		
		if(AUF.onCompleted != null)
		{
			$('#' + AUF.frameName).bind('load', AUF.onCompleted);
		}
	},
	
	post: function()
	{
		if(AUF.onSubmit != null)
		{
			if(AUF.onSubmit() == false)
			{
			    return false;
			}
		}
		AUF.initFrame();
		$('#'+ AUF.frmName).attr('target', AUF.frameName);
		$('#'+ AUF.frmName).attr('action', AUF.target);
		
		$('#'+ AUF.frmName)[0].submit();
		
		return false;
	},
	
	init: function(frmName, target)
	{
		AUF.frmName = frmName;
		AUF.target = target;
		$('#' + AUF.frmName).bind('submit', AUF.post);
	}
}