var knowledgebase = {

  dialog: null,
  id: 0,
  
  dialogOptions: {
    close: function(){knowledgebase.id = 0; knowledgebase.saveAttributes();},
    dragStop: function(event, ui){knowledgebase.rememberUIState(ui);},
    resizeStop: function(event, ui){knowledgebase.rememberUIState(ui);},
    position: ['right', 'center'],
    width: 400,
    height: 550
  },
  
  rememberUIState: function(ui)
  {
    if (ui.position)
    {
      knowledgebase.dialogOptions.position[0] = ui.position.left;
      knowledgebase.dialogOptions.position[1] = ui.position.top;
    }
    
    if (ui.size)
    {
      knowledgebase.dialogOptions.width = ui.size.width;
      knowledgebase.dialogOptions.height = ui.size.height;
    }
    
    knowledgebase.saveAttributes();
  },
  
  openDialog: function(url, showWaiting)
  {
    if (showWaiting) $('body').css('cursor', 'wait');
    
    if (knowledgebase.dialog) knowledgebase.dialog.dialog('close').dialog('destroy');
    
    $.get(url, function(data){
      knowledgebase.dialog = $(data).dialog(knowledgebase.dialogOptions);
      
      if (showWaiting) $('body').css('cursor', 'default');
      
      knowledgebase.id = url.match(/\/([0-9]+)\.html$/)[1];
      
      knowledgebase.saveAttributes();
    });
  },
  
  initAttributes: function()
  {
    var attributes = $.cookie('knowledgebase');
    
    if (attributes)
    {
      attributes = attributes.split(':');
      
      knowledgebase.id = attributes[0];
      knowledgebase.dialogOptions.position[0] = parseInt(attributes[1]);
      knowledgebase.dialogOptions.position[1] = parseInt(attributes[2]);
      knowledgebase.dialogOptions.width = parseInt(attributes[3]);
      knowledgebase.dialogOptions.height = parseInt(attributes[4]);
    }
  },
  
  saveAttributes: function()
  {
    $.cookie('knowledgebase', [knowledgebase.id, knowledgebase.dialogOptions.position[0], knowledgebase.dialogOptions.position[1], knowledgebase.dialogOptions.width, knowledgebase.dialogOptions.height].join(':'));
  },

  dialogLinkClick: function()
  {
    knowledgebase.openDialog($(this).attr('href'), true);
    return false;
  }
};

$(function(){knowledgebase.initAttributes();});
$('.knowledgebase_related_articles a').live('click', knowledgebase.dialogLinkClick);