SGW Item Modification Helper

Improves the modification page

目前為 2018-01-03 提交的版本,檢視 最新版本

// ==UserScript==
// @name        SGW Item Modification Helper
// @namespace   greasyfork.org
// @version     1.4.0.1
// @grant       none
// @include     https://sellers.shopgoodwill.com/sellers/modifyItem.asp*
// @description Improves the modification page
// ==/UserScript==


// @require     https://greasyfork.org/scripts/23449-gm-api-script/code/GM%20API%20script.js?upDate=2016_09_23

$ = window.$;

$('*[name]').not('[id]').each(function(){
  $(this).attr('id', $(this).attr('name'));
});



$('#itemTitle').parent().parent().parent().hide();
$('#itemTitle').parent().parent().parent().before("<tr><td valign='top' width='10' bgcolor='#2045A3'><img src='../images/spacer.gif' height=' 0' width='10'></td><td id='contentTD'></td></tr>");

$('#contentTD').append("<p id='itemTitleContainer'><b>Item Title:</b> </p>");
$('#itemTitleContainer').append($('#itemTitle'));

$('#contentTD').append("<p id='itemCategoryContainer'><b>Category:</b> </p>");
$('#itemCategoryContainer').append($('#s1'));

$('#contentTD').append("<p id='itemDescriptionContainer'><b>Description:</b> </p>");
$('#itemDescriptionContainer').append($('#colourPalette').parent());

$('#contentTD').append("<div id='itemShippingDetailsContainer'></div>");
$('#itemShippingDetailsContainer').append("<p id='itemShippingWeightContainer'><b>Shipping Weight:</b> </p>");
$('#itemShippingWeightContainer').append($('#itemWeight'));
$('#itemShippingDetailsContainer').append("<p id='itemDisplayWeightContainer'><b>Display (Actual) Weight:</b> </p>");
$('#itemDisplayWeightContainer').append($('#itemDisplayWeight'));
$('#itemShippingDetailsContainer').append("<p id='itemShippingPriceContainer'><b>Shipping Charge:</b><br></p>");
$('#itemShippingPriceContainer').append($('#itemShippingPrice'));
$('#itemShippingDetailsContainer').append("<p id='itemShipMethodContainer'><b>Shipping Method:</b> <br></p>");
$('#itemShipMethodContainer').append($('#itemShipMethod'));
$('#itemShippingDetailsContainer').append("<p id='itemNoCombineShippingContainer'><b>Item Shipment Combining:</b><br></p>");
$('#itemNoCombineShippingContainer').append($('#itemNoCombineShipping'));
$('#itemNoCombineShippingContainer').append(" Select this option if the buyer of this item should not be allowed to combine this item with shipment of other items.");
$('#itemShippingDetailsContainer').append("<p id='itemAutoInsuranceContainer'><b>Auto Include Insurance (USPS Only):</b></p>");
$('#itemAutoInsuranceContainer').append($('#itemAutoInsurance'));

$('#contentTD').append("<p id='itemsellerstoreContainer'><b>Seller Store:</b> </p>");
$('#itemsellerstoreContainer').append($('#itemsellerstore'));

$('#itemSellerInventoryLocationID').parent().attr('id', 'itemSellerInventoryLocationIDContainer').appendTo($('#contentTD'));

$('#contentTD').append("<p id='itemSellerInfoContainer'><b>Seller Private Description:</b><br></p>");
$('#itemSellerInfoContainer').append($('#itemSellerInfo'));

$('#contentTD').append("<p style='position:relative; left: 10px; padding-bottom:4px;'><span class='fakeButton' onclick='$(\"#hiddenJunk\").toggle();'>Show/hide hidden fields/etc.</span></p>");


$('#contentTD').parent().after("<tr style='display:none;' id='hiddenJunk'><td valign='top' width='10' bgcolor='#2045A3'><img src='../images/spacer.gif' height=' 0' width='10'></td><td id='hiddenJunkTD'></td></tr>");

$('#hiddenJunkTD').append("<p id='itemQuantityContainer'><b>Item Quantity: </b></p>");
$('#itemQuantityContainer').append($('#itemQuantity').parent());

$('#hiddenJunkTD').append("<p id='itemMinimumBidContainer'><b>Minimum Bid: </b></p>");
$('#itemMinimumBidContainer').append($('#itemMinimumBid').parent());

$('#hiddenJunkTD').append("<p id='itemBidIncrementContainer'><b>Bid Increment: </b></p>");
$('#itemBidIncrementContainer').append($('#itemBidIncrement').parent());

$('#hiddenJunkTD').append("<p id='itemReserveContainer'><b>Reserve Price: </b></p>");
$('#itemReserveContainer').append($('#itemReserve').parent());
$('#itemReserve').parent().children().first().remove();

$('#hiddenJunkTD').append("<p id='itemBuyNowPriceContainer'><b>Buy Now Price: </b></p>");
$('#itemBuyNowPriceContainer').append($('#itemBuyNowPrice').parent());
$('#itemBuyNowPrice').parent().children().first().remove();

$('#hiddenJunkTD').append("<p id='itemActualDimensionsContainer'></p>");
$('#itemActualDimensionsContainer').append($('#itemLength').parent().parent().parent());

$('#hiddenJunkTD').append("<p id='itemShippingDimensionsContainer'></p>");
$('#itemShippingDimensionsContainer').append('<font face="Arial" size="2"><strong>Shipping Dimension - Length x Width x Height in inches (optional)</font><font face="arial" color="#a3223a" size="4"></font>:</strong>');
$('#itemShippingDimensionsContainer').append($('#itemShipLength'));
$('#itemShippingDimensionsContainer').append(" <font face='Arial' size='2'>(Numbers and decimal point '.' only) Used for shipping optimization and prevention of oversized charges.</font>");

$('#hiddenJunkTD').append("<p id='itemShippingContainer'><b>Shipping: </b><p>");
$('#itemShippingContainer').append($('#itemShipping'));
$('#itemShippingContainer').append($('select[name="itemShipping"]'));

$('#hiddenJunkTD').append("<p id='itemHandlingPriceContainer'><b>Handling Charge: </b></p>");

$('#itemHandlingPriceContainer').append($('#itemHandlingPrice').parent());
$('#itemHandlingPrice').parent().children().first().remove();

$('#hiddenJunk').after("<tr><td valign='top' width='10' bgcolor='#2045A3' height='10px'><img src='../images/spacer.gif' height=' 0' width='10'></td><td id='hiddenJunkTD'></td></tr>");

$('#itemShipMethod option[value="3"]').text('Post Office');


$('#itemTitleContainer').after('<div id="counterContainer"><font face="Arial" size="4">You have <b><span id="myCounter"></span></b> characters remaining.</font></div>');
$("#myCounter").html(50-$('#itemTitle').val().length);
$('#itemTitle').bind('keyup', function(){
  $("#myCounter").html(50-$('#itemTitle').val().length);
});

// --------- Shipping calculator --------------------------------------------

if ($('#gesMN_shippingCalculatorContainer').length > 0) {
  $("#itemDescriptionContainer").after($('#gesMN_shippingCalculatorContainer'));
  var sgwTimeouts = window.setTimeout(function(){

      function buttonClickAnimate(button) {
          var myBGColor = button.css('background-color');
          button.animate({'background-color' : darken(button.css('background-color'), 0.1)},250).animate({'background-color' : myBGColor},400);
          //        button.css();
          if ($('#gesMN_checkMark').length < 1) {
              button.after("<div id='gesMN_checkMark' style='float:left; font-size: 30px; color:#00e600; position: relative; top: -10px;'>&#10004;</div>");
          } else {
              $('#gesMN_checkMark').html('&#10004;').css('color', '#00e600');
          }
      }
      function darken(color, modifier) {
          var parts = color.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/);
          delete(parts[0]);
          for (var i = 1; i <= 3; ++i) {
              parts[i] = Math.min(Math.ceil(parts[i]*(1-modifier)), 255);
          }
          return 'rgb(' + parts[1] + ',' + parts[2] + ',' + parts[3] + ')';
      }
      function darkenElement(element, modifier) {
          var bgColor = element.css('background-color');
          dark = darken(bgColor, modifier);
          darker = darken(bgColor, modifier*2);
          console.log(dark);
          console.log(darker);
          element.css({'background-color' : darker, /*'border-color' : borderColor*/}).animate({
              'background-color' : dark,
          }, 500);

      }
      function combineCheck(){
          var noCombine = false;
          var myWeight = $('#itemWeight').val();
          if (myWeight >= 20) {
              console.log('badWeight: >= 20');
              noCombine = true;
          } else if ($('#combineCheck').html() != 'true') {
              var myCat = $('#s1').val();
              var badCats = ['Paintings', 'Prints', 'Strings', 'Brass', 'Formalwear', 'Outerwear', 'Wedding > Dresses', 'Lamps', 'Dinnerware', 'Sewing Machines', 'Typewriters', 'Receivers', 'Turntables', 'Dinnerware', 'Trains'];
              $.each(badCats, function(index, category){
                  if (myCat.indexOf(category) >= 0)  {
                      noCombine = true;
                      console.log('badCat: ' + category);
                  }
              });
              if (noCombine == false) {
                  var myDescription = '';
                  if (typeof $('#WebWizRTE').contents()[0]['body']['innerText'] != 'undefined') {
                      var myDesc = $('#WebWizRTE').contents()[0]['body']['innerText'].replace(/(?:\r\n|\r|\n)/g, '').toLowerCase();
                  }
                  var myTitle = $('#itemTitle').val().toLowerCase();
                  var badWords = ['Framed', 'Saxophone', 'Guitar', 'Keyboard', 'Trombone', 'Telescope', 'Saxophone', 'Lamp', 'Snowboard', 'Skateboard', 'Glass', 'Crystal', 'Cast iron', 'Tool', 'Drum', 'Sewing machine', 'Typewriter', 'Printer', 'Desktop', 'Receiver', 'Turntable', 'Monitor'];
                  //                console.log(myDescription);
                  //                console.log(myTitle);
                  $.each(badWords, function(index, word){
                      word = word.toLowerCase();
                      if (myDescription.indexOf(word) >= 0 || myTitle.indexOf(word) >= 0)  {
                          noCombine = true;
                          console.log('badWord: '+word);
                      } else {
                      }
                  });
                  if (noCombine == false && (myCat.indexOf('Speaker') >= 0 || myTitle.indexOf('speaker') >= 0 || myDescription.indexOf('speaker') >= 0) && myWeight > 5) {
                      noCombine = true;
                      console.log('badWeight (speaker)');
                  }
              }
          }
          if (noCombine == true) {
              console.log('no combine');
              $('#itemNoCombineShipping').attr('checked', true);
          } else {
              console.log('combine');
              $('#itemNoCombineShipping').attr('checked', false);
          }
      }

      function dummyWeight() {
          if ($('#itemWeight').val().length < 1) {
              $('#itemWeight').val(1);
          }
          if ($('#itemDisplayWeight').val().length < 1) {
              $('#itemDisplayWeight').val(1);
          }
      }

      function setCombinable(bool) {
          // true == CAN be combined; false == CANNOT
          $('#combineCheck').html(bool);
          if (bool === true || bool == 'true') {
              $('itemNoCombineShipping').attr('checked', false);
          } else {
              $('itemNoCombineShipping').attr('checked', true);
          }
      }
      function getElement(queryString) {
          if (queryString.indexOf('#') == 0) {
              return document.getElementById(queryString.replace('#',''));
          } else {
              return document.querySelectorAll(queryString)[0];
          }
      }
      function getElements(queryString) {
          return document.querySelectorAll(queryString);
      }
      function hide(el){
          el.style.display = 'none';
          el.classList += 'gesHidden';
          return false;
      }
      function show(el){
          el.style.display = '';
          return false;
      }
      function addCSS(element, styleText) {
          element.style.cssText +=';'+ styleText;
          return false;
      }


      $('#gesMN_useThisButton').bind('click', function(){
          buttonClickAnimate($(this));
          var method;
          var actualWeight = $('#gesMN_actualWeight').val();
          var shippingWeight = 0;
          var shippingCharge = 0;
          console.log(actualWeight);
          if ($('#gesMN_shippingWeight:visible').length > 0) {
              shippingWeight = $('#gesMN_shippingWeight').html();
              $('#itemShipMethod').val(2);
              $('#itemAutoInsurance').attr('checked', false);
              console.log(shippingWeight);
          } else if ($('#gesMN_shippingCharge:visible').length > 0) {
              shippingWeight = actualWeight;
              $('#itemShipMethod').val(3);
              $('#itemAutoInsurance').attr('checked', true);
              shippingCharge = $('#gesMN_shippingCharge').html();
          } else {
              shippingWeight = actualWeight;
              $('#itemShipMethod').val(0);
              $('#itemAutoInsurance').attr('checked', false);
          }
          $('#itemWeight').val(shippingWeight);
          $('#itemDisplayWeight').val(actualWeight);
          $('#itemShippingPrice').val(shippingCharge);
      });

  }, 1100);

}

$('.fakeButton').css({
  'border' : '1px solid #CCC',
  'background-color' : '#EEE',
  'padding' : '3px',
  'margin' : '3px',
});


// can I touch $('body.WebWizRTEtextarea')???