
function rebuildManagementWizard( btns )
{
  $('#dialog').dialog("destroy");
  $('#dialog').dialog({
			autoOpen: false,
			width: 880,
			modal: true,
			buttons: btns
		});
		$('#dialog').dialog('open');
}

function loadManagementWizard( domain )
{
  
	$('#dialog').load( "ManagementHTML.php?domain=" + domain, function ( data ) {
    var buttons = {
				"Close": function() { 
					$('#dialog').dialog("close"); 
				}
			} 
    $( '#dialog' ).attr( 'title', 'User Management' );
    rebuildManagementWizard( buttons );
    selectHighlight();
	});
	
}

function suspendUsers ( domain )
{
  var targets = new Array;
  
  $( '.userlist input[type="checkbox"]' ).each( function(idx, obj ) {
    if ( obj.checked )
      targets.push( obj.name );
    });

  $('#dialog').empty();
  $('#dialog' ).append( 'The following users will be suspended: <br/>' );
  $('#dialog' ).append( '<form id="suspendList"><input type="hidden" id="users" name="users"/></form>' );
  var userstr = ''
  for ( var idx = 0; idx < targets.length; idx++ )
  {
    userstr += targets[idx] + ',';
    $('#dialog' ).append( targets[idx] + "<br/>" );
  }
  $('#users' ).attr( 'value', userstr.substring( 0, (userstr.length - 1 ) ) );
	var buttons = {
				"Confirm": function() { 
					confirmSuspendUsers( domain );
				},
        "Back": function() { 
					loadManagementWizard( domain );
        }      
  }
	rebuildManagementWizard( buttons );

}

function confirmSuspendUsers( domain )
{
  $.post( "/CTK/ManagementSuspendXML.php?domain=" + domain, $( "#suspendList" ).serialize(),
    function( data ) {
      var results = new Array;
      $( 'User', data ).each ( function ( i ) {
        var user = new Array;
        user[ 0 ] = $(this).find( "UserName" ).text();
        user[ 1 ] = $(this).find( "Result" ).text();
        results.push( user );
      });

      $('#dialog').empty();
      $('#dialog' ).append( 'The results are: <br/>' );
      for ( var idx = 0; idx < results.length; idx++ )
      {
        var user = results[idx];
        $('#dialog' ).append( user[0] + ": " + user[1] + "<br/>" );
      }
      var buttons = {
          "Done": function() { 
            $('#dialog').dialog("close"); 
          },
          "Start Over": function() { 
            loadManagementWizard( domain ); 
          }
        }
      rebuildManagementWizard( buttons );
    });
}

function quickSuspend( domain )
{
  var userCsv = ''
 
  $( '.userlist input[type="checkbox"]' ).each( function(idx, obj ) {
    if ( obj.checked ) 
    {
      userCsv += obj.name;
      userCsv += ",";
    }
  });
  
  $.post( "/CTK/ManagementSuspendXML.php?domain=" + domain, {'users' : userCsv.substring( 0, (userCsv.length - 1 ) ) },
    function( data ) {
      var results = new Array;
      $( 'User', data ).each ( function ( i ) {
        var user = new Array;
        user[ 0 ] = $(this).find( "UserName" ).text();
        user[ 1 ] = $(this).find( "Result" ).text();
        results.push( user );
      });
      $( '.userlist input[type="checkbox"]' ).each( function(idx, obj ) {
        if ( obj.checked ) 
        {
          userCsv += obj.name;
          userCsv += ",";
          var cell = $(this).parent();
          var row = $(this).parent().nextAll();
          $( cell ).effect("highlight", { color: "#FF0000" }, 1000);
          $( row ).effect("highlight", { color: "#FF0000" }, 1000);
          $( this ).parent().parent().find( '.active_status' ).html( 'Suspended' );
          $( this ).parent().parent().find( '.active_status' ).attr( 'class', 'inactive_status' );
        }
      });
    });

}

function activateUsers ( domain )
{
  var targets = new Array;
  
  $( '.userlist input[type="checkbox"]' ).each( function(idx, obj ) {
    if ( obj.checked )
      targets.push( obj.name );
    });

  $('#dialog').empty();
  $('#dialog' ).append( 'The following users will be activated ( un-suspended ): <br/>' );
  $('#dialog' ).append( '<form id="activateList"><input type="hidden" id="users" name="users"/></form>' );
  var userstr = ''
  for ( var idx = 0; idx < targets.length; idx++ )
  {
    userstr += targets[idx] + ',';
    $('#dialog' ).append( targets[idx] + "<br/>" );
  }
  $('#users' ).attr( 'value', userstr.substring( 0, (userstr.length - 1 ) ) );
  var buttons = {
    "Confirm": function() { 
      confirmActivateUsers( domain );
    },
    "Back": function() { 
      loadManagementWizard( domain );
    }
  }
	rebuildManagementWizard( buttons );

}

function confirmActivateUsers( domain )
{
  $.post( "/CTK/ManagementActivateXML.php?domain=" + domain, $( "#activateList" ).serialize(),
    function( data ) {
      var results = new Array;
      $( 'User', data ).each ( function ( i ) {
        var user = new Array;
        user[ 0 ] = $(this).find( "UserName" ).text();
        user[ 1 ] = $(this).find( "Result" ).text();
        results.push( user );
      });

      $('#dialog').empty();
      $('#dialog' ).append( 'The results are: <br/>' );
      for ( var idx = 0; idx < results.length; idx++ )
      {
        var user = results[idx];
        $('#dialog' ).append( user[0] + ": " + user[1] + "<br/>" );
      }
      var buttons = {
        "Done": function() { 
          $('#dialog').dialog("close"); 
        },
        "Start Over": function() { 
          loadManagementWizard( domain ); 
        }
      }
      rebuildManagementWizard( buttons );
    });
}

function quickActivate( domain )
{
  var userCsv = ''
 
  $( '.userlist input[type="checkbox"]' ).each( function(idx, obj ) {
    if ( obj.checked ) 
    {
      userCsv += obj.name;
      userCsv += ",";
    }
  });
  
  $.post( "/CTK/ManagementActivateXML.php?domain=" + domain, {'users' : userCsv.substring( 0, (userCsv.length - 1 ) ) },
    function( data ) {
      var results = new Array;
      $( 'User', data ).each ( function ( i ) {
        var user = new Array;
        user[ 0 ] = $(this).find( "UserName" ).text();
        user[ 1 ] = $(this).find( "Result" ).text();
        results.push( user );

      });
      $( '.userlist input[type="checkbox"]' ).each( function(idx, obj ) {
        if ( obj.checked ) 
        {
          userCsv += obj.name;
          userCsv += ",";
          var cell = $(this).parent();
          var row = $(this).parent().nextAll();
          $( cell ).effect("highlight", { color: "#24ff00" }, 1000);
          $( row ).effect("highlight", { color: "#24ff00" }, 1000);
          $( this ).parent().parent().find( '.inactive_status' ).html( 'Active' );
          $( this ).parent().parent().find( '.inactive_status' ).attr( 'class', 'active_status' );
        }
      });
    });
}

function deleteUsers ( domain )
{
 var targets = new Array;
  
  $( '.userlist input[type="checkbox"]' ).each( function(idx, obj ) {
    if ( obj.checked )
      targets.push( obj.name );
    });

  $('#dialog').empty();
  $('#dialog' ).append( 'The following users will be deleted: <br/>' );
  $('#dialog' ).append( '<form id="deleteList"><input type="hidden" id="users" name="users"/></form>' );
  var userstr = ''
  for ( var idx = 0; idx < targets.length; idx++ )
  {
    userstr += targets[idx] + ',';
    $('#dialog' ).append( targets[idx] + "<br/>" );
  }
  $('#users' ).attr( 'value', userstr.substring( 0, (userstr.length - 1 ) ) );
  var buttons = {
    "Confirm": function() { 
      confirmDeleteUsers( domain );
    },
    "Back": function() { 
      loadManagementWizard( domain );
    }
  }
  $( '#dialog' ).attr( 'title', 'Delete Users' );
  rebuildManagementWizard( buttons );

}

function confirmDeleteUsers( domain )
{
  $.post( "/CTK/ManagementDeleteXML.php?domain=" + domain, $( "#deleteList" ).serialize(),
    function( data ) {
      var results = new Array;
      $( 'User', data ).each ( function ( i ) {
        var user = new Array;
        user[ 0 ] = $(this).find( "UserName" ).text();
        user[ 1 ] = $(this).find( "Result" ).text();
        results.push( user );
      });

      $('#dialog').empty();
      $('#dialog' ).append( 'The results are: <br/>' );
      for ( var idx = 0; idx < results.length; idx++ )
      {
        var user = results[idx];
        $('#dialog' ).append( user[0] + ": " + user[1] + "<br/>" );
      }
      
      var buttons = {
          "Done": function() { 
            $('#dialog').dialog("close"); 
          },
          "Start Over": function() { 
            loadManagementWizard( domain ); 
          }
        }
      rebuildManagementWizard( buttons );
    });
}

function addUser ( domain )
{
  $( '#usermanagement_nav_bar' ).hide();
  $( '#management_table' ).hide();
  $( '#addArea' ).show();

  $('#dialog').dialog("destroy");
  var buttons = {
    "Add": function() { 
      confirmAddUser( domain );; 
    },
    "Back": function() { 
      loadManagementWizard( domain ); 
    }
  }
  $( '#dialog' ).attr( 'title', 'Add User' );
  rebuildManagementWizard( buttons );
}

function confirmAddUser( domain )
{
  $.post( "/CTK/ManagementAddXML.php?domain=" + domain, $( "#addOne" ).serialize(),
    function( data ) {
      
      if ( data.getElementsByTagName( 'Error' ).length != 0 )
      {
        
        $( "#addArea .unverified" ).empty();
        $( 'Error', data ).each ( function ( i ) {
          var errorText = $(this).find( "ErrorMsg" ).text();
          $( "#addArea .unverified" ).append( errorText );
          
        });
        return;
      }

      var results = new Array;

      $( 'User', data ).each ( function ( i ) {
        var user = new Array;
        user[ 0 ] = $(this).find( "UserName" ).text();
        user[ 1 ] = $(this).find( "Result" ).text();
        results.push( user );
      });

      $('#dialog').empty();
      $('#dialog' ).append( 'The result is: <br/>' );
      for ( var idx = 0; idx < results.length; idx++ )
      {
        var user = results[idx];
        $('#dialog' ).append( user[0] + ": " + user[1] + "<br/>" );
      }
      var buttons = {
        "Done": function() { 
          $('#dialog').dialog("close"); 
        },
        "Start Over": function() { 
          loadManagementWizard( domain ); 
        }
      }
      rebuildManagementWizard( buttons );
    });
}


function loadSortedManagementWizard( domain, page, size, key, dir )
{
  $('#dialog').load( "ManagementHTML.php?domain=" + domain + "&page=" + page + "&size=" + size + "&sort=" + key + "&dir=" + dir, 
    function ( data ) {
      var buttons = {
          "Close": function() { 
            $('#dialog').dialog("close"); 
          }
      } 
      rebuildManagementWizard( buttons );
     
	});
}

function loadUserEditor( user, domain ) 
{

  $( '#usermanagement_nav_bar' ).hide();
  $( '#management_table' ).hide();
  $.get( "/CTK/ManagementGetXML.php?domain=" + domain + "&user=" + user, function( data )
  {
    var user = $('username', data ).text();
    var first = $('givenName', data ).text();
    var last = $('sn', data).text();
    var status = $('suspend', data).text();
    $('#userForEdit').text( user );
    $('#editOne input[name="first"]').attr( 'value', first );
    $('#editOne input[name="last"]').attr( 'value', last );
    if ( status == 'true' )
    {
      $('#editOne .active_status').text( 'Suspended' );
      $('#editOne .active_status').attr( 'class', 'inactive_status' );
    }
  });
  
  $( '#editArea' ).show();
  
  var buttons = {
    "Save": function() { 
      editUser( user, domain );; 
    },
    "Back": function() { 
      loadManagementWizard( domain ); 
    },
    "Close": function() { 
      $('#dialog').dialog("close");  
    }
  }
  $( '#dialog' ).attr( 'title', 'Edit User' );
  rebuildManagementWizard( buttons );
}

function editUser( user, domain )
{
 $.post( "/CTK/ManagementEditXML.php?domain=" + domain + "&user=" + user, $( "#editOne" ).serialize(),
    function( data ) {
      
      if ( data.getElementsByTagName( 'Error' ).length != 0 )
      {
        
        $( "#editArea .unverified" ).empty();
        $( 'Error', data ).each ( function ( i ) {
          var errorText = $(this).find( "ErrorMsg" ).text();
          $( "#editArea .unverified" ).append( errorText );
        });
        return;
      }
        if ( $( 'Result', data ).text() == "Edited." )
          $( "#editArea .unverified" ).text( 'Saved.' );

  });
}


function selectHighlight(){
  $('.userlist input[type="checkbox"]').click(function() { 
  if ($(this).attr("checked") == true)
  {
  	$(this).parent().parent().find('.a_user').attr( 'class', 'checked_highlight' );
    $(this).parent().effect( "highlight", { color: "#204d76" }, 500 );  
    $(this).parent().nextAll().effect( "highlight", { color: "#204d76" }, 500 );
  } else {   
    $(this).parent().effect( "highlight", { color: "#204d76" }, 500 );  
    $(this).parent().nextAll().effect( "highlight", { color: "#204d76" }, 500 );
    $(this).parent().parent().find('.checked_highlight').attr( 'class', 'a_user' );
  }});
}