// Defined Functions
/*------------------------------------------------------------------------*/

$.fn.sessionReady = function(session){
    window.location = '/account/connect-facebook?token=' + session.access_token;
};
	
// signUpForm
$.fn.authorizeAccount = function(){
    var options = {
        trigger : [ 'none', 'none' ],
        beforeSubmit : showRequest, // pre-submit callback
            success : showResponse,
            url : '/ajax/citizen-profile/authorize-account' // override for form's
    };
	
    // pre-submit callback
    function showRequest(formData, jqForm, options) {
        var queryString = $.param(formData);
        if($('#authorizeAccount').validate().form()){
            $('#authorizeAccount').mask('Saving...');
            return true;
        }else{
            return false;
        }
    }
		
    // post-submit callback
    function showResponse(responseText, statusText, xhr, $form) {
        var response = eval('(' + responseText + ')');
	
        if(response.success) {
            $('#messageBox .success').html('Account successfully linked. Logging you in now...').slideDown();
            setTimeout(function(){
                window.location = response.url;
            }, 2000);
				
            return;
        }else{
            $('#authorizeAccount').unmask();
            $('#messageBox .error').html(response.message).slideDown();
        }	
    }
		
    // set the form to be an ajax form
    return this.each(function() {
        $(this).ajaxForm(options);
    });
	
};
        
        
// Document Ready Function
/*------------------------------------------------------------------------*/
$(function(){

    // click listener for facebook button
    $('.facebookSignIn').click(function(e){
        e.preventDefault();
		
		
        FB.login(function(response) {
            if (response.session && response.perms){
                // user is logged in and granted some permissions.
                // perms is a comma separated list of granted permissions
                $.fn.sessionReady(response.session);
            }
        },{perms:'email,user_birthday,user_location,read_stream,offline_access'});
		
    });
	
    // prep form for ajax form
    $('#authorizeAccount').authorizeAccount();
        
});//end of Document Ready Function()
