- // ==UserScript==
- // @name SGW Item Modification Helper
- // @namespace greasyfork.org
- // @version 1.3.2
- // @grant none
- // @require https://greasyfork.org/scripts/23449-gm-api-script/code/GM%20API%20script.js?upDate=2016_09_23
- // @include https://sellers.shopgoodwill.com/sellers/modifyItem.asp*
- // @description Improves the modification page
- // ==/UserScript==
-
- $('*[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());
-
- // TODO: Shipping calculator?
- $('#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 ($('#shipCalcContainer').length > 0) {
- // Doesn't do these things if the user doesn't have the new shipping calculator script installed.
-
- // $("#itemSellerInfo").after("<b>Note to shipping:</b><br><textarea id='noteToShipping' rows='2' cols='40'></textarea><br>");
- // $('#itemSellerInfo').hide();
-
- $("b:contains('Shipping Charge')").before($('.shippingOptions').first());
- $('.shippingOptions').eq(1).remove();
- // I have NO IDEA why the shippingOptions div gets duplicated, rather than just moved!
-
- $('#itemDescriptionContainer').after($('#shipCalcContainer').css({'margin-top' : '15px', 'margin-bottom' : '20px'}));
-
- var sgwTimeouts = window.setTimeout(function(){
-
-
- // $('#myCounter').bind('change', function(){
- // var len49 = Math.ceil($('#myCounter').html());
- // $('#myCounter2').html(len49 + 1);
- // })
-
- function dummyWeight() {
- if ($('#itemWeight').val().length < 1) {
- $('#itemWeight').val(1);
- }
- if ($('#itemDisplayWeight').val().length < 1) {
- $('#itemDisplayWeight').val(1);
- }
- }
- // disabling this due to conflicts
- /*
- $('#submit1').bind('click', function(e){
- e.preventDefault();
- var submitForm = true;
- while ($('#itemTitle').val().length < 1) {
- $('#itemTitle').val(prompt('Item title?'));
- }
- if ($('#itemWeight').val().length < 1) {
- if ($('#currentShipCalcType').val() == 'USPS') {
- while ($('#itemWeight').val().length < 1) {
- var weight = prompt("Item's weight?");
- $('#itemWeight').val(weight);
- $('#itemDisplayWeight').val(weight);
- }
- } else if ($('#currentShipCalcType').val() == 'pickup') {
- $('#itemWeight').val(150);
- } else {
- alert('Please enter shipping information!');
- $('.calcInput:empty').first().focus();
- submitForm = false;
- }
- }
- while ($('#itemDisplayWeight').val().length < 1) {
- $('#itemDisplayWeight').val(prompt('Item\'s actual weight?'));
- }
- if ($('#itemDescription').val().length < 1) {
- // alert('Please enter a description!');
- // submitForm = false;
- // Doesn't work. Huh.
- }
- if (submitForm === true) {
- if ($('#itemsellerstore').val() == '999') {
- $('#itemsellerstore').val('999 - Mixed Locations');
- }
- var shipString = '<<';
- if ($('#Clothing').css('background-color') == 'rgb(170, 170, 170)') {
- shipString += 'clth:'+$('#actualWeight').val()+'#';
- if ($('#itemShipMethod').val() == 2) {
- shipString += '/' + $('#dim1').val() + 'x' + $('#dim2').val() + 'x' + $('#dim3').val();
- }
- } else if ($('#Media').css('background-color') == 'rgb(170, 170, 170)') {
- shipString += 'mdia+'+$('#actualWeight').val()+'#';
- } else {
- if ($('#currentShipCalcType').val() == 'general') {
- shipString += 'gen:';
- } else if ($('#currentShipCalcType').val() == 'guitar') {
- shipString += 'guit:';
- } else if ($('#currentShipCalcType').val() == 'art') {
- shipString += 'art:';
- } else if ($('#currentShipCalcType').val() == 'long') {
- shipString += 'long:';
- }
- if ($('#dim1').val().length > 0 && $('#dim2').val().length > 0 && $('#dim3').val().length > 0) {
- shipString += $('#actualWeight').val() + '#/' + $('#dim1').val() + 'x' + $('#dim2').val() + 'x' + $('#dim3').val();
- }
- }
- shipString += '>>';
- console.log(shipString);
- $('#itemSellerInfo').val($('#itemSellerInfo').val()+shipString);
- if ($('#noteToShipping').val().length > 0) {
- $('#itemSellerInfo').val($('#itemSellerInfo').val()+'<br><br><b>Note from ' + $('#posterName').html() + ': </b>' + $('#noteToShipping').val());
- }
- $('#form1').submit();
- }
- });
- */
- function validateCombineCat(cat) {
- noCombine = ['Sculpture', 'Figurine', 'Cookie Jar', 'Music Box', 'Glass', 'Grabbag', 'Barware', 'China', 'Cookware', 'Serving Piece', 'Wedding Dress', 'Gown',];
- combine = true;
- // $.each()
- // I don't think I want it to automatically do this.
- }
-
- $('.upsButton').bind('click', function(){
- useSuggestion('UPS');
- });
- $('.uspsButton').bind('click', function(){
- useSuggestion('USPS');
- });
- $('.pickupOnlyButton').bind('click', function(){
- useSuggestion('pickup');
- });
-
- function buttonClickAnimate(button) {
- button.css('background-color', '#AAA').animate({
- 'background-color' : '#EEE',
- }, 500);
- }
-
- function weightPrompt() {
- var displayWeight = Math.ceil($('#addPounds').html());
- while ($('#actualWeight').val().length < 1) {
- var actualWeight = prompt('Item\'s actual weight?');
- actualWeight = actualWeight.replace(/[^\d.-]/g,'');
- $('#actualWeight').val(actualWeight);
- displayWeight += Math.ceil(actualWeight);
- $('#calc-'+$('#currentShipCalcType').val()).trigger("click");
- }
-
- $('#itemDisplayWeight').val(displayWeight);
- }
-
- $('#calc-media').bind('click', function(){
- buttonClickAnimate($(this));
- $('#Media') .trigger('click');
- });
-
- $('#calc-clothing').bind('click', function(){
- buttonClickAnimate($(this));
- weightPrompt();
- var weight = parseFloat($('#actualWeight').val());
- $('#itemDisplayWeight').val(weight);
- calculateUSPS(weight);
- });
-
- $('.shipCharge').bind('click', function(){
- $('.shipType').css('background-color', '#EEE');
- $(this).css('background-color', '#AAA');
- var thisBox = $(this).text();
- var boxData = $('#boxDefinitions').data()[thisBox];
- weightPrompt();
- if (thisBox == 'Media') {
- doMedia($('#actualWeight').val());
-
- } else if (thisBox == 'Clothing' || thisBox == 'Small&light') {
- $('#calc-clothing').trigger('click');
- } else if (boxData['method'] == 'USPS') {
- $('#itemDisplayWeight').val($('#actualWeight').val());
- $('#itemWeight').val($('#actualWeight').val());
- $('#itemShippingPrice').val(boxData['price']);
- $('#shipTypeNote').val(thisBox);
- } else if (boxData['method'] == 'UPS') {
- $('#itemDisplayWeight').val($('#actualWeight').val());
- realWeight = Math.ceil($('#actualWeight').val())+Math.ceil($('#addInches').html());
- if (realWeight > boxData['weight']) {
- $('#itemWeight').val(realWeight);
- } else {
- $('#itemWeight').val(boxData['weight']);
- }
- $('#shipTypeNote').val(boxData['note']);
- }
- if (boxData['method'].length > 0) {
- // console.log('.shipCharge():'+boxData['method']);
- shippingMethod(boxData['method']);
- }
- });
-
- function useSuggestion(type) {
- buttonClickAnimate($('.'+type+'Button:visible'));
- if (type == 'pickupOnly') {
- type = 'pickup';
- }
- // console.log('useSuggestion():'+type);
- shippingMethod(type);
- weightPrompt();
- $('#itemDisplayWeight').val($('#actualWeight').val());
- if (type == 'UPS') {
- $('#itemWeight').val($('#shipCalcShippingWeight').html());
- } else if (type == 'USPS') {
- $('#itemWeight').val($('#actualWeight').val());
- $('#itemShippingPrice').val($('#uspsSuggPrice').html());
- } else if (type == 'pickup') {
- $('#itemWeight').val(150);
- }
- }
-
- $('#UPS').bind('click', function(){
- weightPrompt();
- dimList = [$('#dim1').val(), $('#dim2').val(), $('#dim3').val()];
- $.each(dimList, function(index, dim){
- index+=1;
- while (dim.length < 1) {
- dim = prompt('Dimension ' + index);
- $('#dim'+index).val(dim);
- }
- });
- $('#calc-'+$('#currentShipCalcType').val()).trigger('click');
- if($('.upsButton:visible').length > 0) {
- useSuggestion('UPS');
- } else {
- useSuggestion('pickup');
- }
- });
-
- $('#pickupOnly').bind('click', function(){
- weightPrompt();
- shippingMethod('pickup');
- });
-
- function shippingMethod(method) {
- // console.log('shippingMethod() '+method);
- $('#UPS, #pickup').css('background-color', '#EEE');
- $('#itemShipMethod > option').removeAttr('selected');
- if (method == 'UPS') {
- $('#itemShipMethod').val(2);
- $('#itemAutoInsurance').removeProp('checked');
- $('#itemShippingPrice').val(0);
- $('#UPS').css('background-color', '#AAA');
- } else if (method =='pickup') {
- // console.log('a');
- $('#itemShipMethod').val(0);
- $('#itemAutoInsurance').removeProp('checked');
- $('#itemShippingPrice').val(0);
- $('#itemWeight').val(150);
- $('#pickupOnly').css('background-color', '#AAA');
- } else if (method == 'USPS') {
- // console.log('???');
- $('#itemShipMethod').val(3);
- $('#itemAutoInsurance').prop('checked', true);
- $('#itemWeight').val(Math.ceil($('#actualWeight').val()) + Math.ceil($('#addPounds').html()));
- }
- }
-
- function getCharge(myWeight) {
- console.log('getCharge:'+myWeight);
- if (myWeight <= 3) {
- return '3.99';
- } else if (myWeight <= 6) {
- return '5.99';
- } else if (myWeight <= 10) {
- return '7.99';
- } else if (myWeight <= 13) {
- return '8.99';
- } else if (myWeight <= 15) {
- return '9.99';
- } else if (myWeight <= 19) {
- return '11.99';
- } else if (myWeight <= 25) {
- return '15.99';
- } else if (myWeight <= 27) {
- return '16.99';
- } else if (myWeight <= 29) {
- return '17.99';
- } else if (myWeight <= 31) {
- return '18.99';
- } else if (myWeight <= 33) {
- return '19.99';
- } else if (myWeight <= 35) {
- return '20.99';
- } else if (myWeight <= 37) {
- return '21.99';
- } else if (myWeight <= 39) {
- return '22.99';
- } else if (myWeight <= 41) {
- return '23.99';
- } else if (myWeight <= 43) {
- return '24.99';
- } else if (myWeight <= 45) {
- return '25.99';
- } else if (myWeight <= 47) {
- return '26.99';
- } else if (myWeight <= 49) {
- return '27.99';
- } else if (myWeight <= 51) {
- return '28.99';
- } else if (myWeight <= 53) {
- return '29.99';
- } else if (myWeight <= 55) {
- return '30.99';
- } else if (myWeight <= 57) {
- return '31.99';
- } else if (myWeight <= 59) {
- return '32.99';
- } else if (myWeight <= 61) {
- return '33.99';
- } else if (myWeight <= 63) {
- return '34.99';
- } else if (myWeight <= 65) {
- return '35.99';
- } else if (myWeight <= 67) {
- return '36.99';
- } else if (myWeight <= 68) {
- return '37.99';
- } else if (myWeight <= 69) {
- return '38.99';
- } else if (myWeight <= 70) {
- return '39.99';
- }
- }
- function doMedia(weight) {
- console.log('media:'+weight);
- var myCharge;
- if (weight < 50) {
- myCharge = getCharge(weight);
- } else if (weight < 70) {
- myCharge = 2 * getCharge(weight/2);
- } else {
- if (weight <= 140) {
- weight /= 2;
- myCharge = 2.25 * getCharge(weight);
- } else if (weight <= 210) {
- weight /= 3;
- myCharge = 3.5 * getCharge(weight);
- }
- myCharge = (Math.ceil(myCharge) - .01)
- }
-
- $('#itemDisplayWeight').val(weight);
- $('#itemWeight').val(weight);
- $('#itemShippingPrice').val(myCharge);
- $('#shipTypeNote').val('Media');
- shippingMethod('USPS');
- }
- }, 1100);
-
- }
-
- $('.fakeButton').css({
- 'border' : '1px solid #CCC',
- 'background-color' : '#EEE',
- 'padding' : '3px',
- 'margin' : '3px',
- });
-
- // don't forget checkboxes! also #table does not have a val()...
-
- // can I touch $('body.WebWizRTEtextarea')???