function goToSearchPage() {
  dojo.io.cookie.setCookie('main_nav_tab_id', 'search_tab', -1, '/');
  window.location = '/category';
}

function setUserPreference(name, value) {
  dojo.io.cookie.setCookie(name, value, -1, '/');
}

var mainNavTabSelectHandler = {
  onTabSelect: function() {
    dojo.io.cookie.setCookie('main_nav_tab_id', dojo.widget.byId('main_nav_tab_container').selectedChildWidget.widgetId, -1, '/');
    //alert('h cookie: ' + dojo.widget.byId('main_nav_tab_container').selectedChildWidget.widgetId);
  }
};

var lightboxTabSelectHandler = {
  onTabSelect: function() {
    dojo.io.cookie.setCookie('current_lightbox', dojo.widget.byId('lightbox_tab_container').selectedChildWidget.widgetId, -1, '/');
  }
};

var subNavClickHandler = {
  onTitleClick: function(evt) {
    var clickedTreeNode = dojo.widget.byNode(evt.target.parentNode.parentNode.parentNode);
    //alert("title: " + clickedTreeNode.title);
    window.location = clickedTreeNode.objectId;
  }
};

function disconnectEvents() {
  var mainNavTabContainer = dojo.widget.byId('main_nav_tab_container');
  dojo.event.kwDisconnect({
    type: "after",
    srcObj: mainNavTabContainer,
    srcFunc: "selectChild", 
    targetObj: mainNavTabSelectHandler,
    targetFunc: "onTabSelect"
  });
}

function validateECardForm(){
  var form = document.getElementById('ecard_form');
  var errorMessage = "";

  if (!form.from_name.value 
   || !form.to_name.value 
   || !form.from_email.value 
   || !form.to_email.value 
   || !form.message.value ) {
    errorMessage += 'All fields must be completed to preview or send a Picture History e-card.\n\n';
  }
  if (  (form.to_email.value.indexOf("@") < 0 
      || form.to_email.value.indexOf(".") < 0 ) 
      ||  (form.from_email.value.indexOf("@") < 0 
      || form.from_email.value.indexOf(".") < 0 )  ){
    errorMessage += 'Please be sure you\'ve entered a single, valid email address in each email field. ';
  }

  if (!errorMessage) {
    return true;
  } else {
    alert (errorMessage);
    return false;
  }
}

function showECardForm(dmaId) {
  var form = document.getElementById('ecard_form');
  //form.reset();
  //form.dma.value = dmaId;
  form.from_name.value = '';
  form.from_email.value = '';
  form.to_name.value = '';
  form.to_email.value = '';
  //form.cc_me.checked = false;
  form.message.value = '';
  var eCardDialog = dojo.widget.byId('ecard_dialog');
  eCardDialog.show();
}

function sendECard() {
  if (validateECardForm()) {
    var form = document.getElementById('ecard_form');
    var dmaId = form.dma.value;
    form.submit.disabled = true;
    form.preview.disabled = true;
    form.cancel.disabled = true;

    dojo.io.bind({
      url: "/send_ecard/?dma_id=" + dmaId,
      formNode: document.getElementById("ecard_form"),
      load: function(type, data, evt) {
  //alert("hi");
        var d = (data ? eval('(' + data + ')') : data);
  //alert("innerHTML: "+d.innerHTML);
  //alert("hi");
  //alert("ecard_form_div html: " + e);
  //alert("hi3");
        if (d.message.type == 'success') {
          //eCardDialog.hide();
          //var eCardConfirmationDialog = dojo.widget.byId('ecard_confirmation_dialog');
          //eCardConfirmationDialog.show();
          showECardConfirmation(); 
        }
        else {
          var eCardFormDiv = document.getElementById("ecard_form_div");
          eCardFormDiv.innerHTML = d.innerHTML;
        }
      },
      mimetype: "text/html"
    });
  }
}

function previewECard() {
  if (validateECardForm()) {
    var form = document.getElementById('ecard_form');
    //var dmaId = form.dma_id.value;
    document.getElementById('to_name_span').innerHTML = '<b>' + form.to_name.value + '</b>';
    document.getElementById('to_email_span').innerHTML = form.to_email.value;
    document.getElementById('from_name_span').innerHTML = '<b>' + form.from_name.value + '</b>';
    document.getElementById('from_email_span').innerHTML = form.from_email.value;
    document.getElementById('ecard_message_div').innerHTML = form.message.value;

    document.getElementById('ecard_form_div').style.display = 'none';
    document.getElementById('ecard_preview_div').style.display = 'block';
  }
}

function cancelECard() {
  document.getElementById('ecard_preview_div').style.display = 'none';
  document.getElementById('ecard_confirmation_div').style.display = 'none';
  document.getElementById('ecard_form_div').style.display = 'block';
  var form = document.getElementById('ecard_form');
  form.reset();
  form.submit.disabled = false;
  form.cancel.disabled = false;
  form.preview.disabled = false;
  dojo.widget.byId('ecard_dialog').hide();
}

function editECard() {
  document.getElementById('ecard_preview_div').style.display = 'none';
  document.getElementById('ecard_form_div').style.display = 'block';
}

function showECardConfirmation() {
  var form = document.getElementById('ecard_form');
  document.getElementById('to_email_confirmation_span').innerHTML = form.to_email.value;
  document.getElementById('ecard_preview_div').style.display = 'none';
  document.getElementById('ecard_form_div').style.display = 'none';
  document.getElementById('ecard_confirmation_div').style.display = 'block';
}

function sendAnotherECard() {
  var form = document.getElementById('ecard_form');
  form.submit.disabled = false;
  form.cancel.disabled = false;
  form.preview.disabled = false;
  document.getElementById('ecard_form').reset();
  document.getElementById('ecard_confirmation_div').style.display = 'none';
  document.getElementById('ecard_preview_div').style.display = 'none';
  document.getElementById('ecard_form_div').style.display = 'block';
}

function init() {
  djConfig = { isDebug: true, debugAtAllCosts: true, baseRelativePath: '../js/turbo/' };
  var mainNavTabContainer = dojo.widget.byId('main_nav_tab_container');
  var tabId = dojo.io.cookie.getCookie('main_nav_tab_id');
  //alert('i cookie: ' + tabId);
  if (mainNavTabContainer) {
    if (tabId) { 
      //alert('tabId found, setting tab to: '+tabId)
      mainNavTabContainer.selectChild(dojo.widget.byId(tabId)); 
    }
    else { 
      //alert('tabId not found, setting tab to: '+tabId)
      mainNavTabContainer.selectChild(dojo.widget.byId('browse_tab')); 
    }
    
    dojo.event.kwConnect({
      type: "after",
      srcObj: mainNavTabContainer,
      srcFunc: "selectChild", 
      targetObj: mainNavTabSelectHandler,
      targetFunc: "onTabSelect"
    });

    // advanced_search div has display set to none initially to prevent flashing when page loads
    var searchDiv = dojo.byId("advanced_search");
    if (searchDiv) {
      dojo.html.setStyle(searchDiv, 'display', 'block');
    }
  }

  var mainNavTree = dojo.widget.byId('main_nav_tree');
  if (mainNavTree) {
    var mainNavTreeController = dojo.widget.createWidget("TreeBasicController", { dieWithTree: true })
    mainNavTree.controller.unlistenTree(mainNavTree);
    mainNavTree.controller = mainNavTreeController;
    mainNavTreeController.listenTree(mainNavTree);
    mainNavTreeController.onTreeClick = function(message) {
      var node = message.source;
      //alert("onTreeClick: "+ node);
      if ( !(node instanceof dojo.widget.TreeNode) ) {
        // click came from label, not expand icon
        node = dojo.widget.byNode(message.target.parentNode.parentNode.parentNode);
        //alert("node "+ clickedTreeNode);
      }
      if (!node.isExpanded) {
        var children = mainNavTree.children;
        for(var i = 0; i < children.length; i++) {
          //alert('collapsing node');
          children[i].collapse();
        }
        //alert('expanding node');
        node.expand();
      }
      //else { alert('is expanded'); }
    };

    //if (mainNavTree) { alert('got mainNavTree widget'); }
    //else { alert('did not get mainNavTree widget'); }

    var childNodes = mainNavTree.children;
  //alert('controller: '+ mainNavTree.controller);

    var expandedNode;
    for (var i = 0; i < childNodes.length; i++) {
      //alert('connecting event for childNodes sub ' + i);
      dojo.event.kwConnect({
        srcObj: childNodes[i],
        srcFunc: "onTitleClick",
  //      targetObj: mainNavTreeClickHandler, 
  //      targetFunc: "onNavItemClick"
        targetObj: mainNavTreeController, 
        targetFunc: "onTreeClick"
      });
      for (var j = 0; j < childNodes[i].children.length; j++) {
        dojo.event.kwConnect({
          srcObj: childNodes[i].children[j],
          srcFunc: "onTitleClick",
          targetObj: subNavClickHandler,
          targetFunc: "onTitleClick"
        });
      }
      if (childNodes[i].isExpanded) { expandedNode = childNodes[i]; }
    }
    if (!(expandedNode)) { childNodes[0].expand(); }

    //var treeNodeCategory = dojo.widget.byId('treeNodeCategory');
    //var treeNodeDecade = dojo.widget.byId('treeNodeDecade');
    //var treeNodePhotographer = dojo.widget.byId('treeNodePhotographer');
    //var treeNodeAnniversary = dojo.widget.byId('treeNodeAnniversary');
  }

  var contentPane = dojo.byId('client_pane');
  if (contentPane) { 
    contentPane.tabIndex = -1;
    contentPane.focus(); 
  }
  var lightbox = document.getElementById('lightbox');
  if (lightbox) {
    if (lightbox.getAttribute('hidden') == 'true') {
      var lightboxWidget = dojo.widget.byId('lightbox');
dojo.debug("in init lightboxWidget: " + lightboxWidget);
dojo.debug("in init, lightbox showing: " + lightboxWidget.isShowing());
      lightboxWidget.hide();
    }
    else {
      if (dojo.io.cookie.getCookie('minimize_lightbox') == 'true') {
        lightbox.style['height'] = '45px';
      }
      dojo.html.setStyle(lightbox, 'display', 'block');
    }
    var layoutContainer = dojo.widget.byId('layout_container');
    if (layoutContainer) { layoutContainer.onResized(); }
  }

  var lightboxTabContainer = dojo.widget.byId('lightbox_tab_container');
  if (lightboxTabContainer) {
    dojo.event.kwConnect({
      type: "after",
      srcObj: lightboxTabContainer,
      srcFunc: "selectChild", 
      targetObj: lightboxTabSelectHandler,
      targetFunc: "onTabSelect"
    });
  }

  var subNav = document.getElementById('sub_nav');
  if (subNav) {
//alert('subnav class: ' + subNav.className);
    var uls = subNav.getElementsByTagName('UL'); //gets more uls than I want, but ...
    for (var i = 0; i < uls.length; i++ ) {
//dojo.debug('ul: ' + uls[i]);
      //if (subNav.getAttribute('class') == uls[i].getAttribute('id')) {
      if (subNav.className == uls[i].getAttribute('id')) {
        uls[i].style.display = 'block';
      } 
      else { uls[i].style.display = 'none'; }
    }
  }
}

