var images = new Array()
function preload() {
        for (i = 0; i < preload.arguments.length; i++) {
                images[i] = new Image()
                images[i].src = preload.arguments[i]
        }
}
preload(
        baseUrl + "includes/img/spinner.gif"
)

enhance({
    loadScripts: [      
    baseUrl +'includes/js/tree/jQuery.tree.js',
    baseUrl +'includes/js/tree/example.js'
    ],
    loadStyles: ['css/enhanced.css']	
});   
        
        
$(function(){
           
    $('body').delegate('.toggleRoleRename', 'click', function(){
              
        $(this).parent().find('.renameRole').toggle();
              
    });
           
    $('body').delegate('.toggleRoleChange', 'click', function(){
              
        $(this).parent().parent().find('.userRoleChange').toggle();
              
    });
           
    $('body').delegate('.toggleAddRole', 'click', function(){
              
        $(this).parent().find('.addRole').toggle();
              
    });
           
    $('body').delegate('#btnAddRole', 'click', function(e){
               
        e.preventDefault();
               
        var roleName = $('.frmAddRole').find('input[type=text]').val();

        if(roleName != '') {
                   
            $('.frmAddRole').find('input[type=text]').val('');
            $('.addRole').hide();
                   
            $("#load").html('<li><img class="ajaxLoader" style="display: block; margin: 10px auto 0;" src="'+baseUrl+'includes/img/spinner.gif" width="24" height="24" /></li>').fadeIn();
                   
            $.post(baseUrl+'admin_role/add_role', {
                'role_name' : roleName
            }, function(resp){
                       
                $('#load').html(resp);
                       
            });
                   
        } else {
            alert('Role name cannot be empty!');
        }          
    });
           
    $('body').delegate('#btnRenameRole', 'click', function(e){
               
        e.preventDefault();
                        
        var data = $('.frmRenameRole').serialize();
        var roleName = $('.frmRenameRole').find('input[type=text]').val();
               
        if(roleName != '') {
                   
            $("#load").html('<li><img class="ajaxLoader" style="display: block; margin: 10px auto 0;" src="'+baseUrl+'includes/img/spinner.gif" width="24" height="24" /></li>');
                   
            $.post(baseUrl+'admin_role/rename_role', data, function(resp){
                       
                $('#load').hide().html(resp).fadeIn();
                       
            });
                   
        } else {
            alert('Role name cannot be empty!');
        }          
    });
           
    $('body').delegate('.deleteRole', 'click', function(e){
               
        e.preventDefault();

        var roleId = $(this).parent().find('.roleName').attr('id');
                
        $('.tipsy').hide();
               
        if(confirm('Are you sure that you want to delete this role?')) {
                   
            $("#load").html('<li><img class="ajaxLoader" style="display: block; margin: 10px auto 0;" src="'+baseUrl+'includes/img/spinner.gif" width="24" height="24" /></li>');
                   
            $.post(baseUrl+'admin_role/delete_role', {
                'role_id' : roleId
            }, function(resp){
                       
                $('#load').hide().html(resp).fadeIn();
                       
            });
                   
        } else {
            return false;
        }          
    });
           
    $('body').delegate('.setDefault', 'click', function(e){
               
        e.preventDefault();
               
        $('.tipsy').hide();

        var roleId = $(this).parent().parent().find('.roleName').attr('id');
               
        if(confirm('Are you sure that you want to make role default one?')) {
                   
            $("#load").html('<li><img class="ajaxLoader" style="display: block; margin: 10px auto 0;" src="'+baseUrl+'includes/img/spinner.gif" width="24" height="24" /></li>');
                   
            $.post(baseUrl+'admin_role/make_default', {
                'role_id' : roleId
            }, function(resp){
                       
                $('#load').hide().html(resp).fadeIn();
                       
            });
                   
        } else {
            return false;
        }          
    });
           
    $('body').delegate('.roleName', 'click', function(e){
               
        $('#permissionRoleName').text($(this).text());
        $('#permissionRoleId').val($(this).attr('id'));
        $('.selectRoleTitle').hide();
        $('.roleManager').hide().fadeIn();
               
        $("#loadPriveleges").html('<div style="font-size: 14px; font-weight:bold; margin-top: 10px;"><img src="'+baseUrl+'includes/img/spinner.gif" width="24" height="24" /> Loading...</div>');
               
        $.post(baseUrl+'admin_role/get_privileges', {
            'role_id' : $(this).attr('id')
            }, function(resp){
                    
            $('#loadPriveleges').html(resp);
                    
        });           
    });
           
    $('body').delegate('#addPermission', 'click', function(e){
               
        var roleId = $('#permissionRoleId').val();
               
        $("#loadPriveleges").html('<img src="'+baseUrl+'includes/img/spinner.gif" width="24" height="24" /> Loading...');
               
        $.post(baseUrl+'admin_role/add_privilege',{
            'role_id' : roleId
        }, function(){
                   
            $.post(baseUrl+'admin_role/get_privileges', {
                'role_id' : roleId
            }, function(resp){
                    
                $('#loadPriveleges').html(resp);
                    
            });    
                   
        });  
    });
           
    $('body').delegate('.roleControllers', 'change', function(){
               
        var parent = $(this).parent();
               
        $.post(baseUrl+'admin_role/get_actions', {
            'controller' : $(this).val()
            }, function(resp){
                  
            $(parent).find('.roleActions').html(resp);
                  
            var privilegeId = $(parent).find('.privilegeId').attr('id');
            var controller = $(parent).find('.roleControllers').val();
            var action = $(parent).find('.roleActions').val();
                                                      
            $.post(baseUrl+'admin_role/update_privilege', {
                'privilege_id' : privilegeId, 
                'controller' : controller, 
                'action' : action
            });    
                  
        });
    });
           
    $('body').delegate('.roleActions', 'change', function(){
                                   
        var privilegeId = $(this).parent().find('.privilegeId').attr('id');
        var controller = $(this).parent().find('.roleControllers').val();
        var action = $(this).parent().find('.roleActions').val();
                                                      
        $.post(baseUrl+'admin_role/update_privilege', {
            'privilege_id' : privilegeId, 
            'controller' : controller, 
            'action' : action
        });    

    });
          
    $('body').delegate('.deletePrivilege', 'click', function(){
                 
        var roleId = $('#permissionRoleId').val();
                     
        if(confirm('Are you sure that you want to delete this privilege?'))  {
                      
            var privilegeId = $(this).parent().find('.privilegeId').attr('id');                                                     
            $.post(baseUrl+'admin_role/delete_privilege', {
                'privilege_id' : privilegeId
            });    
                      
            $("#loadPriveleges").html('<img src="'+baseUrl+'includes/img/spinner.gif" width="24" height="24" /> Loading...');
                      
            $.post(baseUrl+'admin_role/get_privileges', {
                'role_id' : roleId
            }, function(resp){
                    
                $('#loadPriveleges').html(resp);
                    
            });    
                      
        } else {
            return false;     
        }
    });
           
    $('body').delegate('.btnChangeRole', 'click', function(e){
        e.preventDefault();
        var data = $(this).parent().serialize();
                
        $(this).parent().parent().hide();
        var responseDiv = $(this).parent().parent().parent().find(".userResponse");
        var responseRole = $(this).parent().parent().parent().find(".userRoleInfo").find('span');
                
        $(responseDiv).html('<img src="'+baseUrl+'includes/img/spinner.gif" width="24" height="24" /> Updating...');
                
        $.post(baseUrl+'admin_role/update_user_role',data, function(resp){
            $(responseDiv).text('Updated');
            $(responseRole).text(resp);
        });    

    });
            
    $('body').delegate('.filterRole', 'change', function(e){
        e.preventDefault();
        var data = $(this).serialize();
                                
        $('#liveSearchList').html('<li><img src="'+baseUrl+'includes/img/spinner.gif" width="24" height="24" /> Searching...</li>');
                
        $.post(baseUrl+'admin_role/filter_by_role',data, function(resp){
                    
            if(resp != '') {
                $('#liveSearchList').html(resp).show();
                $('#adminPeopleList').hide();
                $('.pagination').hide();
            } else {
                $('#adminPeopleList').show();
                $('#liveSearchList').empty().hide();
                $('.pagination').show();
            }
        });    

    });
          
        
           
    $( "#tabs" ).tabs();
           
          
    $('body').delegate('.adminPeopleSearch','click, focus',function(){                
                
        if($(this).val() === 'Type here to search by user name') {
            $(this).val('');
        }                
    });

           
    $('body').delegate('.adminPeopleSearch','keyup', function(){
                
        var value = $(this).val();

                
        if(value.length >= 3)    {
                    
            var data = $(this).serialize();
                    
            $('#adminPeopleList').hide();
            $('.pagination').hide();
            $('#liveSearchList').html('<li><img src="'+baseUrl+'includes/img/spinner.gif" width="24" height="24" /> Searching...</li>').show();
                
            $.post(baseUrl+'admin_role/live_people_search',data, function(resp){

                if(resp != '') {
                    $('#liveSearchList').html(resp);
                }
            });    
                    
        }
                
        if(value.length == 0) {
            $('#adminPeopleList').show();
            $('#liveSearchList').empty().hide();
            $('.pagination').show();
        }
          

    });
           
});



