var logapp = {
	isVisible:false,
    buttonClick : function (e) {
		if (logapp.isVisible) {
            e.preventDefault();
            e.stopPropagation();
        }
		else {
            logapp.openLogin();
			$(document).bind('mousedown', logapp.checkMouse);
		}
	},
	checkMouse : function(element) {
        //close when click outside of element
        var element = $(element.target)[0],
            observe = $('.sponsor-login')[0],
            observebtn = $('.sponsor-login-button > span'); 
        // unbinding the click handler prevents the reopening of the 
        // login form on mouseup on the login button
        observebtn.unbind('click'); 
        while(logapp.isVisible) {
            if(element == observe) {
                return true;
            }
            else if (element == document || element == observebtn[0]) {
                logapp.closeLogin();
                return false;
            }
            else {
                element = $(element).parent()[0];
            }
        } 
        // reapplies the initial handler
        return observebtn.bind('click', logapp.buttonClick);
	},
	closeLogin: function (){
		$('.sponsor-login').fadeOut( 100, function() {
			logapp.isVisible = false;
		});
	},
    openLogin: function(){
        $('.sponsor-login').slideDown( 200, function(){
            logapp.isVisible = true; 
        });
    }
};
$(document).ready(function () {
	$('.sponsor-login-button > span').bind('click', logapp.buttonClick);
});

