/**
 * ACTION
 * $.la.action.messages
 * $.la.action.settings
 * $.la.action.onUserLogged()
 * $.la.action.isLogged()
 * $.la.action.verifyAuthentification( loginUrl, formId )
 * $.la.action.getLoginBoxByCookie(LayerId, editUrl, forgotUrl, registerUrl, logoutUrl, loginUrl, BaseUrl, BaseImg )
 * $.la.action.verifyRules( loginUrl, formName )
 * $.la.action.loginUserBox(loginUrl, sLoginContent, idForm)
 * $.la.action.loginUser(LayerId, editUrl, forgotUrl, registerUrl, logoutUrl, loginUrl, BaseUrl, BaseImg, sLoginContent, idForm ,bSeSouvenir )
 * $.la.action.RefreshLoginBoxAvatar()
 * $.la.action.loginUserCommentaire(loginUrl,idForm, noeud)
 * $.la.action.addFavori( url ,loginUrl , formName, div)
 */

(function($){
	
    $.la = $.la||{};
    
    $.la.modules.require('la.cookie');
    $.la.modules.require('la.modalbox');
    
    $.extend(true, $.la,
    {
        modules:{
            la :{
                modules:{
                	action: {
                		active: true
                	}
                }
            }
        },
        
        action:{
            messages:{
                notLogged:'Nous n\'avons pas pu t\'identifier. Vérifie ton pseudo et ton mot de passe.',
                bookmarkAdded:'Ce contenu a été ajouté aux favoris'
            },

            /* valeurs par défaut : à surcharger dans le siteaccess */
            settings:{
                loginBox:{
                    title:'Login',
                    width:800,
                    height:600
                }
            },

            /* Callback appelé quand un user est loggué
				 * A définir dans la page concernée
				 */
            onUserLogged:null,

            isLogged: function(){
                if($.la.cookie.get("user_logged") == "oui"){
                    return true;
                }
                return false;
            },

            verifyAuthentification: function ( loginUrl, formId, params )
            {
                if(typeof params === 'undefined'){
                    params = {};
                }

                $.extend($.la.action.settings.loginBox,params);
                if($.la.action.isLogged())
                {
                    if(typeof $.la.action.settings.loginBox.returnUrl != 'undefined'){
                        if(loginUrl.indexOf('iframe=1') != -1){
                            parent.location=$.la.action.settings.loginBox.returnUrl;
                        }
                        else{
                            document.location=$.la.action.settings.loginBox.returnUrl;
                        }
                    }
                    else{
                        $('#' + formId).submit();

                    }

                }
                else
                {
                    $.la.action.baseIdForm = formId;
                    $.la.modalbox.call(loginUrl, $.la.action.settings.loginBox);
                }
            },
            // à garder pour la compatibilté
            verfifyAuthentification: function ( loginUrl, formId, params ){
                this.verifyAuthentification( loginUrl, formId, params );
            },

            getLoginBoxByCookie: function(LayerId, editUrl, forgotUrl, registerUrl, logoutUrl, loginUrl, BaseUrl, BaseImg )
            {
            // dans le siteaccess
            },


            /*
					 * Resynchronise la session EZ avec le cookie user_logged
					 *
					 * @param string path : path supplémentaire.
					 * 						ex : '/bebe' (uniquement pour ibb actuellement);
					 * @return boolean user_logged
					 *
					 * jQuery.la.action.checkSSO();
					 * $.la.action.checkSSO();
					 */
            checkSSO: function(path)
            {
                var urlIsLogged =  $.la.sHost + '/action/edit';
                var urlLogout =  $.la.sHost + '/action/logout';
                if(path != null){
                    urlIsLogged = $.la.sHost + path + '/action/edit';
                    urlLogout = $.la.sHost + path + '/action/logout';
                }
                $.ajax({
                    url: urlIsLogged,
                    async:false,
                    type:'GET',
                    dataType:'html',
                    success:function(response){
                        var logged = response.indexOf('kernel (1)')  == -1 && $.la.cookie.get('EZ_TICKET') != false;
                        if(!logged){
                            $.ajax({
                                url: urlLogout,
                                async:false,
                                type:'GET',
                                success:function(response){}
                            });
                        }
                    }
                });
                return $.la.cookie.get('EZ_TICKET') != false;
            },

            verifyRules: function( loginUrl, formName )
            {
            //siteaccess
            },

            loginUserBox: function(loginUrl, sLoginContent, idForm)
            {
                $.ajax({
                    url: loginUrl,
                    async: true,
                    type: 'POST',
                    data: $('#'+idForm).serialize(),
                    success:function(html){
                        if($.la.action.isLogged())
                        {
                            $.la.action.getLoginBoxByCookie('identification','/action/edit','/action/forgotpassword','/action/register','/action/logout?ReturnUrl='+$.la.sHost, '/action/login','/','/design/gulli/images/');
                            if($.la.action.baseIdForm.substring(0,10) == 'addFavoris')
                            {
                                $.ajax({
                                    url: $.la.sHost+'/action/bookmark',
                                    async: true,
                                    type: 'POST',
                                    data: $('#'+$.la.action.baseIdForm).serialize(),
                                    success:function(){
                                        alert($.la.action.messages.bookmarkAdded);
                                        $.la.modalbox.close();
                                    }
                                });
                            }
                            else
                            {
                                $('#' + $.la.action.baseIdForm).submit();
                                $.la.modalbox.close();
                            }
                        }
                        else
                        {
                            $('#TB_ajaxContent').html(html);
                        }
                    }
                }
                );
            },

            /* fonction par défaut : à surcharger dans le siteaccess */

            loginUser:function(LayerId, editUrl, forgotUrl, registerUrl, logoutUrl, loginUrl, BaseUrl, BaseImg, sLoginContent, idForm ,bSeSouvenir ) {
                if( typeof(idForm) == 'undefined' ){
                    idForm = 'mon_compte';
                }
                $('#'+LayerId).hide();
                $.ajax({
                    url: loginUrl,
                    async: true,
                    type: 'POST',
                    dataType:$.la.utils.getJsonDatatype(),
                    data: $('#'+idForm).serialize(),
                    success:function(){
                        if($.la.action.isLogged()){
                            $.la.action.getLoginBoxByCookie(LayerId, editUrl, forgotUrl, registerUrl, logoutUrl, loginUrl, BaseUrl, BaseImg );
                            $('#'+LayerId).show();
                        } else {
                            alert($.la.action.messages.notLogged);
                            $('#'+LayerId).show();
                            document.location.href = loginUrl;
                        }
                    }
                });
                if($.la.action.onUserLogged != null) {
                    $.la.action.onUserLogged();
                }
            },


            /* Merci de corriger et de mettre un r minuscule refreshLoginBoxAvatar*/
            RefreshLoginBoxAvatar: function() {
            // siteaccess
            },

            loginUserCommentaire: function(loginUrl,idForm, noeud)
            {
                $.ajax({
                    url: loginUrl,
                    async: true,
                    type: 'POST',
                    data: $('#'+idForm).serialize(),
                    success:function(html)
                    {
                        if($.la.action.isLogged())
                        {
                            $.la.action.getLoginBoxByCookie('identification','/action/edit','/action/forgotpassword','/action/register','/action/logout?ReturnUrl='+$.la.sHost, '/action/login','/','/design/gulli/images/');

                            $.ajax({
                                url: $.la.sHost+'/commanage/popup_comment/'+noeud,
                                async: true,
                                success:function(html_comment){
                                    $('#TB_ajaxContent').html(html_comment);
                                }
                            });
                        }
                        else
                        {
                            $('#TB_ajaxContent').html(html);
                        }
                    }
                });
            },

            addFavori: function( url ,loginUrl , formName, div)
            {
            //siteaccess
            },

            updateUIAfterLogin:function( )
			{
            //siteaccess
            }

        }
    });
})(jQuery);

