﻿;(function($){
var tmp;

$.fn.layerAuth = function( container_id )
{
	if( 0 == $('#'+container_id).parent('body').length )
		$('#'+container_id).detach().appendTo('body');
	
	$( '#'+container_id+' .close-btn' ).click( hideLoginForm );
	$( '#'+container_id+' form' ).submit( submitLoginForm );

	this.click( function(){ showLoginForm(); return false; } );

	
	function showLoginForm()
	{
		$('#'+container_id+'').removeClass( 'hidden' );
	};


	function hideLoginForm()
	{
		$('#'+container_id+'').addClass( 'hidden' );
	};


	function submitLoginForm()
	{
		var form = $('#'+container_id+' form')[0];

		$('#'+container_id+' .hint').text( '' );
		
		doQuery(
			form.action,
			{
				login:    form['login'].value,
				password: form['password'].value
			},
			function( data )
			{
				if( 0 == data.status.code )
				{
					hideLoginForm();

					if( undefined != tmp )
					{
						tmp();
						tmp = undefined;
					}

					setTimeout( 'location.reload()', 1000 );
				}
			},
			{
				to_exec_callback: true,
				message_show_func: function( status ){ if( 0 != status.code ) $('#'+container_id+' .hint').text( status.message ); }
			}
		);

		return false;
	};
	
};


$.fn.layerAuth.specExec = function( func )
{
	tmp = func;
};

$.fn.layerAuth.specCall = function()
{
	tmp();
};

})(jQuery);
