function removeDmaFromLightbox(lightboxId, dmaId) {
  var img = document.getElementById('RemoveDma:' + dmaId);
  img.style['cursor'] = 'wait';
  document.body.style['cursor'] = 'wait';
  dojo.io.bind({
    url: "/lightbox?submit=RemoveFrom&lightbox_id=" + lightboxId + "&dma_id=" + dmaId + "&method=js",
    load: function(type, data, evt) {
      var lightboxItemNode = document.getElementById("LightboxItem:" + dmaId);
      var parent = lightboxItemNode.parentNode;
      parent.removeChild(lightboxItemNode);
      document.body.style['cursor'] = 'default';
      img.style['cursor'] = 'default';
    },
    mimetype: "text/html"
  });
}

function addDmaToLightbox(dmaId) {
  // cases:
  //   1) logged in
  //     a) have lightbox -- add dma
  //     b) no lightbox -- add lightbox and dma 
  //   2) not logged in -- popup alert box 

  var img = document.getElementById('Dma:' + dmaId);
  var oldImgCursorStyle = img.style['cursor'];
  img.style['cursor'] = 'wait';
  document.body.style['cursor'] = 'wait';

  var lightboxContentPane = dojo.widget.byId('lightbox');
  
  if (lightboxContentPane.isShowing()) { // lightbox showing, we must be logged in
//alert('lightbox pane is showing');

    var lightbox = document.getElementById("lightbox");

    // if lightbox is minimized, raise it
    if (dojo.io.cookie.getCookie('minimize_lightbox') == 'true') { unminimizeLightbox(); }

    var lightboxTabContainer = dojo.widget.byId('lightbox_tab_container');
    var widgetId = lightboxTabContainer.selectedChildWidget.widgetId;
    var index = widgetId.indexOf(":");
    var currentLightboxId = widgetId.substring(index + 1, widgetId.length); // everything after the ":"
    var lightboxItemContainerNode = document.getElementById("lightbox_item_container:" + currentLightboxId);
    var children = lightboxItemContainerNode.childNodes;
    for(var i = 0; i < children.length; i++) {
      if (children[i].tagName == 'DIV' && children[i].getAttribute('id') == 'LightboxItem:' + dmaId) {
        alert('This item already exists in your current Lightbox');
        document.body.style['cursor'] = 'default';
        img.style['cursor'] = oldImgCursorStyle;
        return;
      }
    }

    dojo.io.bind({
      url: "/add_dma_to_lightbox?dma_id=" + dmaId,
      load: function(type, data, evt) {
        var innerHtml = data;
        var newInnerHtml = innerHtml + lightboxItemContainerNode.innerHTML;
        lightboxItemContainerNode.innerHTML = newInnerHtml;
        document.body.style['cursor'] = 'default';
        img.style['cursor'] = oldImgCursorStyle;
      },
      mimetype: "text/html"
    });
  }
  else {
//alert('lightbox pane is not showing');
    //window.location = '/lightbox?submit=AddTo&dma_id=' + dmaId + '&current_url=' + window.location;
    //lightboxDiv.style['visibility'] = 'visible';
    //lightboxDiv.style['height'] = '150px';
    //var lightboxContentPane = dojo.widget.byId('lightbox');
    //lightboxContentPane.onResized();
    var lightboxContainerNode = dojo.byId("lightbox_tab_container");
dojo.debug("container node: "+lightboxContainerNode);
    dojo.io.bind({
      url: "/add_new_lightbox?dma_id=" + dmaId,
      load: function(type, data, evt) {
        var data = (data ? eval('(' + data + ')') : data);
        //if (data.loggedIn) { // check to see that user is logged in
          if (lightboxContainerNode) {
            var node = document.createElement('div');
dojo.debug("data: "+data);
dojo.debug("params: ");
dojo.debug("    id:" + data.params.id);
dojo.debug(" class:" + data.params.cssClass);
dojo.debug(" style:" + data.params.style);
dojo.debug(" label:" + data.params.label);
dojo.debug(" cache:" + data.params.cacheContent);
            node.innerHTML = data.innerHTML;
//dojo.debug("innerHTML: " + node.innerHTML);
            node.style['background'] = '#EEEBE6';
            var lightboxTab = dojo.widget.createWidget('ContentPane', data.params, node);
            lightboxTabContainer = dojo.widget.byId('lightbox_tab_container');
dojo.debug("lightboxTabContainer: " + lightboxTabContainer);
            lightboxTabContainer.addChild(lightboxTab);
            var lightbox = dojo.widget.byId('lightbox');
dojo.debug("lightbox is showing: " + lightbox.isShowing());
dojo.debug("lightbox width: " + lightbox.width);
dojo.debug("lightbox height: " + lightbox.height);
            dojo.html.setStyle(lightbox.domNode, 'display', 'block');
            lightbox.show();
dojo.debug("lightbox is showing now: " + lightbox.isShowing());
            var layoutContainer = dojo.widget.byId('layout_container');
dojo.debug("layoutContainer : " + layoutContainer);
dojo.debug("layoutContainer width: " + layoutContainer.width);
dojo.debug("layoutContainer height: " + layoutContainer.height);
            //lightbox.height = 150;
            //dojo.html.setStyle(lightbox, 'display', 'block');
            //dojo.html.setStyle(lightbox, 'visibility', 'visible');
            //lightbox.resizeTo(layoutContainer.width, 150);
dojo.debug("lightbox width: " + lightbox.width);
dojo.debug("lightbox height: " + lightbox.height);
            layoutContainer.onResized();
          }
        //}
        //else { // if not logged in, load login page
//alert('not logged in');
//alert('data: '+data);
        //  window.location = data.loginURL;
        //}
        document.body.style['cursor'] = 'default';
        img.style['cursor'] = oldImgCursorStyle;
      },
      mimetype: "text/html"
    });
  }
}

function setCurrentLightbox(lightboxId) {
  dojo.io.bind({
    url: "/set_current_lightbox?lightbox_id=" + lightboxId,
    //load: function(type, data, evt) {
    //},
    mimetype: "text/html"
  });
}

function deleteLightbox(lightboxId) {
  var lightboxTab = dojo.widget.byId("Lightbox:" + lightboxId);
  if (confirm('Are you sure you want to delete lightbox ' + lightboxTab.label + '?')) {
    document.body.style['cursor'] = 'wait';

    //var currentLightboxTabId; 
    //var paramString = ''; 
    //var lightboxTabContainer = dojo.widget.byId("lightbox_tab_container");
    //var currentLightboxTab = lightboxTabContainer.selectedChildWidget;
    //if (currentLightboxTab) {
    //  var widgetId = currentLightboxTab.widgetId;
    //  // widgetId in format Lightbox:id -- get the id
    //  var index = widgetId.indexOf(":");
    //  var currentLightboxId = widgetId.substring(index + 1, widgetId.length); // everything after the ":"
    //  // paramString = "&new_current_lightbox_id=" + currentLightboxId;
    //}

    var lightboxTabContainer = dojo.widget.byId("lightbox_tab_container");
    var lightboxTab = dojo.widget.byId("Lightbox:" + lightboxId);

    var newCurrentLightboxId;

    if (lightboxTabContainer.children.length > 1) {
      var newCurrentTab;
      if (lightboxTabContainer.children[0] == lightboxTab) {
        newCurrentTab = lightboxTabContainer.children[1];
      }
      else {
        newCurrentTab = lightboxTabContainer.children[0];
      }
      newCurrentLightboxId = getLightboxIdFromWidget(newCurrentTab);
    }

    dojo.io.bind({
      url: "/delete_lightbox?lightbox_id=" + lightboxId + "&new_current_lightbox_id=" + newCurrentLightboxId,
      load: function(type, data, evt) {
        if (lightboxTabContainer && lightboxTab) {
//alert('removing child ' + lightboxTab.label);
          lightboxTabContainer.removeChild(lightboxTab);
        }
        if (lightboxTabContainer.children.length == 0) {
//alert('no lightboxes left, hiding pane');
//alert('deleting cookie: '+ dojo.io.);
          dojo.io.cookie.deleteCookie('current_lightbox');
//alert('deleted cookie');
          var lightbox = dojo.widget.byId("lightbox");
//alert('lightbox: ' + lightbox);
          lightbox.hide();
//alert('hid lightbox');
          var layoutContainer = dojo.widget.byId("layout_container");
//alert('layout_container: ' + layoutContainer);
          layoutContainer.onResized();
//alert('layout_container resized');
        }
        else {
          dojo.io.cookie.setCookie('current_lightbox', lightboxTabContainer.selectedChildWidget.widgetId, -1, '/');
        }
        document.body.style['cursor'] = 'default';
      },
      mimetype: "text/html"
    });
  }
}

function showEmailLightboxForm(lightboxId) {
  var form = document.getElementById('email_lightbox_form');
  //form.reset();
  form.lightbox_id.value = lightboxId;
  form.to_name.value = '';
  form.to_address.value = '';
  form.subject.value = '';
  form.cc_me.checked = false;
  form.comments.value = '';
  var emailLightboxDialog = dojo.widget.byId('email_lightbox_dialog');
  emailLightboxDialog.show();
}

function emailLightbox() {
  var form = document.getElementById('email_lightbox_form');
  var lightboxId = form.lightbox_id.value;
  form.submit.disabled = true;
  form.cancel.disabled = true;

  dojo.io.bind({
    url: "/email_lightbox/?lightbox_id=" + lightboxId,
    formNode: document.getElementById("email_lightbox_form"),
    load: function(type, data, evt) {
      var d = (data ? eval('(' + data + ')') : data);
      var emailLightboxDialog = dojo.widget.byId('email_lightbox_dialog');
      emailLightboxDialog.domNode.innerHTML = d.innerHTML;
      if (d.message.type == 'success') {
        var form = document.getElementById('email_lightbox_form');
        emailLightboxDialog.hide();
        var emailLightboxConfirmationDialog = dojo.widget.byId('email_lightbox_confirmation_dialog');
        emailLightboxConfirmationDialog.show();
      }
    },
    mimetype: "text/html"
  });
}

function minimizeLightbox() {
  var lightbox = document.getElementById("lightbox");
  lightbox.style['height'] = '45px';
  lightbox.style['overflow'] = 'hidden';

  var lightboxContentPanes = dojo.widget.byId('lightbox_tab_container').children;
  for (var i = 0; i < lightboxContentPanes.length; i++) {
    var lightboxId = getLightboxIdFromWidget(lightboxContentPanes[i]);
    var link = document.getElementById('minimize_lightbox_link:' + lightboxId);
    link.onclick = function() { unminimizeLightbox(); return false; }
    var img = document.getElementById('minimize_lightbox_icon:' + lightboxId);
    img.src = '/images/common/raise_lightbox_pane.gif';
  }

  //lightbox.setAttribute('minimized', 'true');
  var layoutContainer = dojo.widget.byId("layout_container");
  layoutContainer.onResized();
  dojo.io.cookie.setCookie('minimize_lightbox', 'true', -1, '/');
}

function unminimizeLightbox() {
  var lightbox = document.getElementById("lightbox");
  lightbox.style['height'] = '150px';
  lightbox.style['overflow'] = 'auto';

  var lightboxContentPanes = dojo.widget.byId('lightbox_tab_container').children;
  for (var i = 0; i < lightboxContentPanes.length; i++) {
    var lightboxId = getLightboxIdFromWidget(lightboxContentPanes[i]);
    var link = document.getElementById('minimize_lightbox_link:' + lightboxId);
    link.onclick = function() { minimizeLightbox(); return false; }
    var img = document.getElementById('minimize_lightbox_icon:' + lightboxId);
    img.src = '/images/common/minimize_lightbox_pane.gif';
  }

  //lightbox.setAttribute('minimized', 'false');
  var layoutContainer = dojo.widget.byId("layout_container");
  layoutContainer.onResized();
  dojo.io.cookie.setCookie('minimize_lightbox', 'false', -1, '/');
}

function getLightboxIdFromWidget(widget) {
  var widgetId = widget.widgetId;
  var index = widgetId.indexOf(":");
  var lightboxId = widgetId.substring(index + 1, widgetId.length); // everything after the ":"
  return lightboxId;
}
