
$(document).ready(function(){

    do_fb_login = function()
    {
        $('#custom_fb_connect').removeClass('fb_prijava');
        $('#custom_fb_connect').addClass('fb_prijava_spin');
        $('#custom_fb_connect').text('Spajam se...');


        FB.Connect.requireSession(fb_login, fb_login_cancel);
        return false;
    }

    fb_login = function()
    {
		    $.ajax({
  		    	type: 'POST',
  		    	url: BASE_URL + 'korisnici/facebook_prijava',
  		    	data: "facebook_prijava=true",
  		    	success: function(msg){
                                parseFbLoginState(msg);
  		    	},
                        error: function(msg){
                              alert('GRESKA: ' + msg);
                        }
		    });
    }


    parseFbLoginState = function (state)
    {
            var result = state;
            result = result.split('|');

            if(result[0] == 'Success')
            {
                switch (result[1])
                {
                    case '1':
//                        $('#response_registration_error_msg').empty();
//                        $('#modal_registration_form').css ('display', 'none');
//                        $('#response_registration_success_msg').css('display', 'block');
//                        $('span#reg_success_msg').html(result[1]);
                          window.location.reload();
                        break;

                    case '2':
                        var info = result[2];
                        info = info.split('#');
                        
                        $('#fb_reg_fake_text_fullname').html(info[0]);
                        $('#fb_reg_fake_text_email').html(info[1]);
                        $('#fb_cur_login_fullname').html(info[0]);
                        do_trigger_fb_select_modal_box();
                        break;

                    case '3':
                        do_fb_login();
                        break;

                    case '4':
                        alert('Završetak prijave uspješan - forma ispunjena!');
                        break;

                    default:
                        alert('Greska: ' + state);


                }

            } else if(result[0] == 'Error') {
                $('#response_fb_registration_error_msg').html(result[1]);
            } else {
                $('#response_fb_registration_error_msg').html('Dogodila se nepoznata greška. Pokušajte ponovno.');
            }
    }












    fb_login_cancel = function()
    {
        $('#custom_fb_connect').removeClass('fb_prijava_spin');
        $('#custom_fb_connect').addClass('fb_prijava');
        $('#custom_fb_connect').text('Facebook prijava');

        alert('Odustali ste od spajanja putem facebooka.');
    }

    fb_status = function()
    {
         FB.Connect.get_status().waitUntilReady(function(status) {
           switch(status) {
           case FB.ConnectState.connected:
                alert('Connected');
             break;
           case FB.ConnectState.appNotAuthorized:
                alert('NotAuthorized');
             break;
           case FB.ConnectState.userNotLoggedIn:
                alert('NotLoggedIn');
             break;
           }
         });

         return false;
    }


        // ---------------------------------------------------------------------
        // FB Link

        $('#fb_connect_old_user').click(function(){
                $('#modal_fb_select_box').jqmHide();
                do_trigger_fb_login_modal_box();
		return false;
	});

        $('#fb_connect_new_user').click(function(){
                $('#modal_fb_select_box').jqmHide();
                do_trigger_fb_reg_modal_box();
		return false;
	});

        do_trigger_fb_select_modal_box = function ()
        {
            $('#modal_fb_select_box').jqm({
                overlay: 60,
                overlayClass: 'jqmOverlay'
            }).jqmShow();
        }

        do_trigger_fb_reg_modal_box = function ()
        {
            var handleCloseFbReg=function(hash) {
                hash.w.fadeOut('2000',function(){
                    hash.o.remove();
                    //alert('Odustali ste od spajanja Facebook računa sa vašim korisničkim racunom.');
                    window.location.reload();
                });
            };
           
            $('#modal_fb_registration_box').jqm({
                overlay: 60,
                overlayClass: 'jqmOverlay',
                onHide: handleCloseFbReg
            }).jqmShow();
        }



        do_trigger_fb_login_modal_box = function ()
        {
            var handleCloseFbReg=function(hash) {
                hash.w.fadeOut('2000',function(){
                    hash.o.remove();
                    //alert('Odustali ste od spajanja Facebook računa sa vašim korisničkim racunom.');
                    window.location.reload();
                });
            };

            $('#modal_fb_login_box').jqm({
                overlay: 60,
                overlayClass: 'jqmOverlay',
                onHide: handleCloseFbReg
            }).jqmShow();
        }


	$('#modal_fb_registration_form').validate({
		rules: {
		    fb_prijava_zavrsi_username: "required",
		    fb_prijava_zavrsi_password: "required",
                    fb_prijava_zavrsi_password_repeat:  {
                        required: true,
                        equalTo: "#fb_prijava_zavrsi_password"
                    }
		},
		messages: {
		    fb_prijava_zavrsi_username: "Morate unijeti korisničko ime",
		    fb_prijava_zavrsi_password: "Morate unijeti lozinku",
                    fb_prijava_zavrsi_password_repeat: "Morate ponoviti odabranu lozinku"
		},

                 submitHandler: function() {

		    var actionUrl = $('#modal_fb_registration_form').attr('action');

		    $.ajax({
  		    	type: 'POST',
  		    	url: actionUrl,
  		    	data: $('#modal_fb_registration_form').serialize(),
  		    	success: function(msg){
                                parseFbRegistrationResult(msg);
  		    	},
                        error: function(msg){
                               $('#reponse_fb_registration_error_msg').html(msg);
                        }
		    });

                    return false;
                 }
	});


        // novi korisnici, registracija + povezivanje
        parseFbRegistrationResult = function(state)
        {
            var result = state;
            result = result.split('|');

            if(result[0] == 'Success')
            {

 
                switch (result[1])
                {
                    case '4':
                        $('#response_fb_registration_error_msg').empty();
                        $('#modal_fb_registration_form').css ('display', 'none');
                        $('#response_fb_registration_success_msg').css('display', 'block');
                        $('span#reg_fb_success_msg').html(result[2]);
                        break;

                    default:
                        alert('Greska kod parseFbRegistrationResult. Detalji: ' + state);
                }


            } else if(result[0] == 'Error') {
                $('#response_fb_registration_error_msg').html(result[1]);
            } else {
                $('#response_fb_registration_error_msg').html('Dogodila se nepoznata gre\u0161ka. Pokušajte ponovno.');
            }

        }




        // stari korisnici, samo prijava + povezivanje
	$('#modal_fb_login_form').validate({
		rules: {
		    fb_prijava_current_username: "required",
		    fb_prijava_current_password: "required"
		},
		messages: {
		    fb_prijava_current_username: "Morate unijeti korisni\u010dko ime",
		    fb_prijava_current_password: "Morate unijeti lozinku"
		},

                 submitHandler: function() {

		    var actionUrl = $('#modal_fb_login_form').attr('action');

		    $.ajax({
  		    	type: 'POST',
  		    	url: actionUrl,
  		    	data: $('#modal_fb_login_form').serialize(),
  		    	success: function(msg){
                                parseFbCurrentLoginResult(msg);
  		    	},
                        error: function(msg){
                               $('#response_fb_current_login_error_msg').html(msg);
                        }
		    });

                    return false;
                 }
	});

        parseFbCurrentLoginResult = function(state)
        {
            var result = state;
            result = result.split('|');

            if(result[0] == 'Success')
            {


                switch (result[1])
                {
                    case '4':
                        $('#response_fb_current_login_error_msg').empty();
                        $('#modal_fb_login_form').css ('display', 'none');
                        $('#response_fb_current_login_success_msg').css('display', 'block');
                        $('span#log_fb_success_msg').html(result[2]);
                        break;

                    default:
                        alert('Greska kod parseFbCurrentLoginResult. Detalji: ' + state);
                }


            } else if(result[0] == 'Error') {
                $('#response_fb_current_login_error_msg').html(result[1]);
            } else {
                $('#response_fb_current_login_error_msg').html('Dogodila se nepoznata gre\u0161ka. Pokušajte ponovno.');
            }

        }

});
