var _disableHandleActivate = true;
var _manadgedTabs;
var _addTabUrl;
var _removeTabUrl;

function handleActivateTab(tab)
{
    if (_disableHandleActivate) {
        return false;
    }
    document.location.href = tab.locationUrl;
}

function handleRemoveTab(container, component)
{
    removeManadgedTab(component.tabId);
}

function removeManadgedTab(id)
{
    Ext.Ajax.request({
        url: _removeTabUrl,
        params: {id: id}
    });
}

function addManadgedTab(id, title, tabUrl)
{
    if (_manadgedTabs.find('locationUrl', tabUrl).length > 0) {
        throw 'This tab already exists.';
    }

    if(!tabUrl)
        return;
        
    tab = _manadgedTabs.add({title: title, closable: true, listeners: {activate: handleActivateTab}});
    tab.tabId = id;
    tab.locationUrl = tabUrl;
}

function saveAddedTab(id, title, tabUrl)
{
    if (title.length > 50) {
        title = title.substr(0, 50) + '...';
    }

    try {

        addManadgedTab(id, title, tabUrl);

        Ext.Ajax.request({
            url: _addTabUrl,
            params: {id: id, title: title, url: tabUrl}
        });
    } catch (e) {
        alert(e);
    }
}

function addCustomUserTab()
{
    var caption = prompt('Enter Caption:');
    if (null == caption || "" == caption) {
        return;
    }

    var url = prompt('Enter URL:', 'http://');
    if (null == url || "" == url) {
        return;
    }

    var id = "";

    words = caption.toLowerCase().split(/\s+/);
    for (var i = 0; i < words.length; i++) {
        id = id.concat(words[i]);
    }

    saveAddedTab(id, caption, url);
}

function addUserTab()
{
    var url = document.location.href;
    var id = "";

    var caption = prompt('Enter Caption:');
    if (null == caption || "" == caption) {
        return;
    }

    words = caption.toLowerCase().split(/\s+/);
    for (var i = 0; i < words.length; i++) {
        id = id.concat(words[i]);
    }

    saveAddedTab(id, caption, url);
}

function register(e) {
 if (!e)
   e = window.event;
 var k = e.keyCode;

 if (e.ctrlKey) {
  if (k == 37) {
   window.history.back();
  }
  if (k == 39) {
   window.history.forward();
  }
 }
}