        function showAdminTools() {
          plainGet("?a=ajax&ajaxa=adminTools", updateMainPaneCB);
        }
        
        function showDevTools() {
          plainGet("?a=ajax&ajaxa=devTools", updateMainPaneCB);
        }
        
        function toggleSlide(url) {
          plainGet("?a=ajax&ajaxa=toggleSlide&url="+url);
        }
        
        function toggleItem(key) {
          plainGet("?a=ajax&ajaxa=toggleItem&key="+key);
        }
        
        function addSlide() {
          var url = document.getElementById('newSlide').value;
          var desc = document.getElementById('slideDescription').value;
          plainGet("?a=ajax&ajaxa=addSlide&url="+url+"&description="+desc, updateMainPaneCB);
        }
        
        function deleteSlide(url) {
          plainGet("?a=ajax&ajaxa=deleteSlide&url="+url, updateMainPaneCB);
        }
        
        function clone(key) {
          plainGet("?a=ajax&ajaxa=clone&key="+key);
        }
        
        function edit(key, type) {
        try {
          var detail = document.getElementById('detailPane');
          detail.innerHTML = ' ';
          getItemEditDetails(key, type);
        } catch(e) {
          var mainContainer = document.getElementById('body');
          var event = document.createElement('div');
          event.setAttribute('id', 'detailPane');
          event.setAttribute('name', 'detailPane');
          event.className='detailPane';
          mainContainer.appendChild(event);
          
          var attributes = { 
            width: { to: 770 },
            height: { to: 680 }
          };
          var detailPane = document.getElementById('detailPane');
          var anim = new YAHOO.util.Motion('detailPane', attributes, 1, YAHOO.util.Easing.easeOutStrong);
          anim.animate();
          detailPane.innerHTML += "Fetching...";
          getItemEditDetails(key, type);
        }      
      }
      
      function getItemEditDetails(key, type) {
        plainGet("?a=ajax&ajaxa=getItemEditDetails&key="+key+"&type="+type, updateDetailPaneCB);
      }
      
      function updateItem(key) {
        var itemName = document.getElementById('itemName').value;
        var imgUrl = document.getElementById('imgUrl').value;
        var largeImgUrl = document.getElementById('largeImgUrl').value;
        var retailPrice = document.getElementById('retailPrice').value;
        var inStock = document.getElementById('inStock').value;
        var description = document.getElementById('itemDescription').value;
        var type = document.getElementById('type').value;
        var manufacturer = document.getElementById('manufacturer').value;
        var weight = document.getElementById('weight').value;
        var staticShipping = document.getElementById('staticShipping').value;
        var staticHandling = document.getElementById('staticHandling').value;
        var order = document.getElementById('order').value;
        
        var request = "a=ajax&ajaxa=updateItem"+
          "&key="+key+
          "&itemName="+itemName+
          "&imgUrl="+imgUrl+
          "&largeImgUrl="+largeImgUrl+
          "&retailPrice="+retailPrice+
          "&inStock="+inStock+
          "&type="+type+
          "&manufacturer="+manufacturer+
          "&weight="+weight+
          "&staticShipping="+staticShipping+
          "&staticHandling="+staticHandling+
          "&order="+order+
          "&description="+description;
          
        plainPost("?", request, modalEventCallback);
        <!--setTimeout(getItemsByManu('1'), 1000);-->
      }
      
      function uploadImage() {
        var imageName = document.getElementById('imageName').value;
        var imageFile = document.getElementById('imageFile').value;
        YAHOO.util.Connect.setForm('imageUploadForm', true);
          
        var cObj = YAHOO.util.Connect.asyncRequest('POST', 'store.front', uploadCallback);
      }
      
      var uploadCallback = {
          upload: function(o) { dimScreen(); displayEvent("File has been uploaded", o.responseText);
                    showAdminTools(); setTimeout("goToImages()", 500);}
      }
      
      function goToImages() {
          location.href='#imageThumbs';
      }
      
      function updateShipping() {
          var value;
          
          for (var i=0; i < document.shippingConfig.shippingConfig.length; i++) {
             if (document.shippingConfig.shippingConfig[i].checked) {
                var value = document.shippingConfig.shippingConfig[i].value;
             }
          }
          plainGet("?a=ajax&ajaxa=updateShipping&type="+value);
          if (value == 'none') {
              dimScreen();
              displayEvent("Success", "You will need to specify shipping and handling charges for each item with this option selected.");
          }
          else {
              dimScreen();
              displayEvent("Success", "Shipping calculations will now be automatically generated.");
          }
      }
      
      function addSubtype(itemKey) {
        var form = "<label for='subTypeName' style='font-weight: bold;'>Name (i.e., Color)</label>";
        form += "<input name='subTypeName' id='subTypeName'/><br/>";
        form += "<label for='subTypeValue' style='font-weight: bold;'>Value (i.e., Blue)</label>";
        form += "<input name='subTypeValue' id='subTypeValue'/><br/>";
        form += "<label for='subTypeInv' style='font-weight: bold;'>Quantity</label>";
        form += "<input name='subTypeInv' id='subTypeInv'/><br/><br/>";
        form += "<input type='button' value='Add Variant' onclick='addSubTypeReq("+itemKey+");'>";
        displayEvent("Add Product Variant", form);
      }
      
      function addSubTypeReq(itemKey) {
        var stn = document.getElementById("subTypeName");
        var stv = document.getElementById("subTypeValue");
        var sti = document.getElementById("subTypeInv");
        
        plainGet("?a=ajax&ajaxa=newSubtype&itemKey="+itemKey+"&subTypeName="+stn.value+"&subTypeValue="+stv.value+"&subTypeInv="+sti.value);
        dimScreen();
        setTimeout("getItems()", 1000);
        displayEvent("Added Variant", "Added new product variant.");
        setTimeout("editSubType("+itemKey+")", 1000);
      }
      
      function editSubType(itemKey) {
        plainGet("?a=ajax&ajaxa=editSubType&key="+itemKey, updateDetailPaneCB);
      }
      
      function updateSubType(divId, st_key, key) {
        var invDiv = document.getElementById(divId);
        var inv = invDiv.value;
        var order = document.getElementById("subType_order_"+st_key).value;
        plainGet("?a=ajax&ajaxa=updateSubType&st_key="+st_key+"&inv="+inv+"&key="+key+"&order="+order, updateDetailPaneCB);
      }