Rev 190 | Blame | Compare with Previous | Last modification | View Log | RSS feed
<!DOCTYPE html>
<html lang="en">
<head>
<title>eBay Quick Listing</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
<link rel="icon" href="favicon.ico" type="image/x-icon">
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.13.2/css/bootstrap-select.min.css">
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet">
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.13.2/js/bootstrap-select.js"></script>
<script src="js/XMLWriter.js"></script>
<script src="https://cdn.jsdelivr.net/npm/lodash@4.17.11/lodash.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.7.3/Chart.min.js"></script>
<link rel="stylesheet" href="css/style.css">
<script src="js/muna-tools.js"></script>
<script src="js/barcoder.js"></script>
<style>
.btn-group-sm > .btn, .btn-sm {font-size:small!important}
.invert {filter: invert(20%);}
</style>
</head>
<body style="font-size:80%!important;" onload="return initConfig();" onbeforeunload="return confirmUnload();">
<div>
<div>
<div class="container-fluid bg-secondary">
<div class="clearfix">
<img class="img-fluid float-right" src="images/MUNA%20-%20Logo%20100x100.png" alt="MUNA Trading Logo" />
<h1 id="connected">eBay Quick Listing
<input id="login" type="button" class="btn bg-success mb-2 w3-hide" onclick="eBayLogin();" value="Login" /></h1>
</div>
</div>
<div class="container-fluid bg-light">
<div class="row">
<div class="container-fluid border col-6">
<div class="container-fluid border bg-primary">
<div class="form-group">
<form id="searchForm" onsubmit="findOneBay();return false;">
<select id="keyword" title="Select Item ..." class="selectpicker mx-2 mt-2 btn-sm" data-style="btn-sm" data-width="fit" data-live-search="true" autofocus="autofocus" onchange="findOneBay();">
</select>
</form>
</div>
</div>
<div class="container-fluid border">
<form id="listForm">
<div class="mt-2">
<label for="category" class="mr-sm-2">Category:</label>
<select id="category" name="category" data-placeholder="Select Category..." class="selectpicker mb-2 mr-sm-2" data-style="btn-outline-dark btn-sm" onchange="return categoryValues();" onload="return categoryValues();">
<option class="small" value="29792">Audiobooks</option>
<option class="small" value="29223">Books Antiquarian & Collectible</option>
<option class="small" value="182882">Books Children Young Adults</option>
<option class="small" value="171228">Books Fiction Literature</option>
<option class="small" value="171243">Books Nonfiction</option>
<option class="small" value="268">Books Other</option>
<option class="small" value="2228">Books Textbooks, Education</option>
<option class="small" selected="selected" value="176984">CDs</option>
<option class="small" value="617">DVDs Blu-ray Discs</option>
<!--option value="666">Trading Cards Auto Racing</option-->
<option class="small" value="213">Trading Cards Baseball</option>
<option class="small" value="214">Trading Cards Basketball</option>
<!--option value="133072">Trading Cards College</option-->
<option class="small" value="215">Trading Cards Football</option>
<!--option value="4240">Trading Cards Golf</option-->
<option class="small" value="216">Trading Cards Ice Hockey</option>
<!--option value="183444">Trading Cards Soccer</option-->
</select>
<label for="format" class="mr-sm-2">Format:</label>
<select id="format" name="format" data-placeholder="Select Format..." class="selectpicker mb-2 mr-sm-2" data-style="btn-outline-dark btn-sm" onchange="return categoryValues();" onload="return categoryValues();">
<option class="small" value="Chinese">Auction</option>
<option class="small" value="FixedPriceItem" selected>Fixed Price</option>
</select>
</div>
<div class="mt-2">
<div class="clearfix">
<a id="image1anchor" href="#" target="_blank"><img id="image1" src="images/default-image.png" alt="(Front Image Missing)" style="max-height:80px;" onload="return pictureLoad(true);" onerror="return pictureLoad(false);" crossorigin="anonymous" /></a>
<a id="image2anchor" href="#" target="_blank"><img id="image2" src="images/default-image.png" alt="(Back Image Missing)" style="max-height:80px;" onload="return pictureLoad(true);" onerror="return pictureLoad(false);" crossorigin="anonymous" /></a>
<img id="descriptionImage" src="images/default-image.png" alt="(Front/Back Image Missing)" style="max-height:50px;display:inline-block;" onload="return pictureLoad(true);" onerror="return pictureLoad(false); " crossorigin="anonymous" />
<a id="image3anchor" class=" invisible" href="#" target="_blank"><img id="image3" src="images/default-image.png" alt="(Optional Image 3)" style="max-height:80px;" crossorigin="anonymous" /></a>
<a id="image4anchor" class=" invisible" href="#" target="_blank"><img id="image4" src="images/default-image.png" alt="(Optional Image 4)" style="max-height:80px;" crossorigin="anonymous" /></a>
<a id="image5anchor" class=" invisible" href="#" target="_blank"><img id="image5" src="images/default-image.png" alt="(Optional Image 5)" style="max-height:80px;" crossorigin="anonymous" /></a>
<a id="image6anchor" class=" invisible" href="#" target="_blank"><img id="image6" src="images/default-image.png" alt="(Optional Image 6)" style="max-height:80px;" crossorigin="anonymous" /></a>
<a id="image7anchor" class=" invisible" href="#" target="_blank"><img id="image7" src="images/default-image.png" alt="(Optional Image 7)" style="max-height:80px;" crossorigin="anonymous" /></a>
<a id="image8anchor" class=" invisible" href="#" target="_blank"><img id="image8" src="images/default-image.png" alt="(Optional Image 8)" style="max-height:80px;" crossorigin="anonymous" /></a>
<a id="image9anchor" class=" invisible" href="#" target="_blank"><img id="image9" src="images/default-image.png" alt="(Optional Image 9)" style="max-height:80px;" crossorigin="anonymous" /></a>
<a id="image10anchor" class=" invisible" href="#" target="_blank"><img id="image10" src="images/default-image.png" alt="(Optional Image 10)" style="max-height:80px;" crossorigin="anonymous" /></a>
</div>
</div>
<div class="mt-2">
<label for="title" class="keepTogether mr-sm-2">Title:</label>
<input id="title" name="title" type="text" maxlength="80" style="width:90%" onblur="return extractFromTitle();" onKeyPress="printTitleLength()" onKeyUp="printTitleLength()" required>
<span id="titleLength" class="small">(0)</span>
</div>
<div class="mt-2">
<label for="price" class="keepTogether mr-sm-2">Price:</label>
<input id="price" name="price" style="width:8%" type="text" required>
<label for="bestoffer" class="mr-sm-2">Best Offer:</label>
<input id="bestoffer" name="bestoffer" class="checkbox" type="checkbox">
<label for="quantity" class="keepTogether mr-sm-2">Quantity:</label>
<input id="quantity" name="quantity" style="width:8%" type="text" value="1" maxlength="4" required>
<label for="sku" class="keepTogether mr-sm-2">SKU:</label>
<input id="sku" name="sku" style="width:12%" type="text" value="Batch X" maxlength="20" required>
<label for="conditionId" class="keepTogether mr-sm-2">Condition:</label>
<select id="conditionId" name="conditionId" data-placeholder="Select Condition..." class="selectpicker" data-style="btn-outline-dark btn-sm">
<option class="small" value="1000">New</option>
<option class="small" value="1500">New other (see details)</option>
<option class="small" value="1750">New with defects</option>
<option class="small" value="2000">Manufacturer refurbished</option>
<option class="small" value="2500">Seller refurbished</option>
<option class="small" value="2750">Like New</option>
<option class="small" value="3000">Used / Pre-owned</option>
<option class="small" value="4000">Very Good</option>
<option class="small" value="5000">Good</option>
<option class="small" value="6000">Acceptable</option>
<option class="small" value="7000">For parts or not working</option>
</select>
</div>
<div class="form-group">
<label for="condition">Condition Description:</label>
<input id="CdConditionDescriptionSingular" type="button" class="btn btn-dark btn-xs border rounded-circle mx-2 w3-hide" onclick="return setCdConditionDescription('S');" value="S" />
<input id="CdConditionDescriptionPlural" type="button" class="btn btn-dark btn-xs border rounded-circle mx-2 w3-hide" onclick="return setCdConditionDescription('P');" value="P" />
<input id="CdConditionDescriptionDigipak" type="button" class="btn btn-dark btn-xs border rounded-circle mx-2 w3-hide" onclick="return setCdConditionDescription('D');" value="D" />
<input id="CdConditionDescriptionNewCase" type="button" class="btn btn-dark btn-xs border rounded-circle mx-2 w3-hide" onclick="return setCdConditionDescription('N');" value="N" />
<textarea id="condition" name="condition" class="form-control" style="font-size:95%!important" rows="2" maxlength="1000" required></textarea>
</div>
</form>
<div id="bookDetails" class="container-fluid ">
<form id="bookForm" class="form-fluid">
<div>
<label for="bookISBN" class="keepTogether mr-sm-2">ISBN:</label>
<input id="bookISBN" name="bookISBN" style="width:13%" type="text" disabled>
<label for="bookFormat" class="keepTogether mr-sm-2">Format:</label>
<select id="bookFormat" name="bookFormat" data-placeholder="Select Format..." class="selectpicker" data-style="btn-outline-dark btn-sm">
<option class="small" value="Hardcover">Hardcover</option>
<option class="small" value="Paperback">Paperback</option>
<option class="small" value="CD-ROM (Non-Audio)">CD-ROM (Non-Audio)</option>
<option class="small" value="Mixed Lot">Mixed Lot</option>
<option class="small" value="Board Book">Board Book</option>
<option class="small" value="Loose-Leaf">Loose-Leaf</option>
<option class="small" value="Postcard Book">Postcard Book</option>
<option class="small" value="Shrink-Wrapped Pack">Shrink-Wrapped Pack</option>
</select>
<label for="bookAuthor" class="keepTogether mr-sm-2">Author:</label>
<input id="bookAuthor" name="bookAuthor" style="width:29%" type="text" maxlength="40">
<label for="bookPublicationYear" class="keepTogether mr-sm-2">Year:</label>
<input id="bookPublicationYear" name="bookPublicationYear" style="width:8%" type="text" maxlength="4">
</div>
<div>
<label for="bookSubject" class="keepTogether mr-sm-2">Subject:</label>
<select id="bookSubject" name="bookSubject" data-placeholder="Select Subject..." class="selectpicker" data-style="btn-outline-dark btn-sm">
<option class="small" value="Activity & Coloring Books">Activity & Coloring Books</option>
<option class="small" value="Architecture & Design">Architecture & Design</option>
<option class="small" value="Art & Photography">Art & Photography</option>
<option class="small" value="Biography & Autobiography">Biography & Autobiography</option>
<option class="small" value="Books on Collecting">Books on Collecting</option>
<option class="small" value="Business & Economics">Business & Economics</option>
<option class="small" value="Computers & Internet">Computers & Internet</option>
<option class="small" value="Cooking, Food & Wine">Cooking, Food & Wine</option>
<option class="small" value="Erotica">Erotica</option>
<option class="small" value="Family & Relationships">Family & Relationships</option>
<option class="small" value="Games & Puzzles">Games & Puzzles</option>
<option class="small" value="Health & Fitness">Health & Fitness</option>
<option class="small" value="History">History</option>
<option class="small" value="Hobbies & Crafts">Hobbies & Crafts</option>
<option class="small" value="Home & Garden">Home & Garden</option>
<option class="small" value="Humor">Humor</option>
<option class="small" value="Law & Government">Law & Government</option>
<option class="small" value="Library & Information Science">Library & Information Science</option>
<option class="small" value="Literary Criticism">Literary Criticism</option>
<option class="small" value="Literature">Literature</option>
<option class="small" value="Medical">Medical</option>
<option class="small" value="Military & War">Military & War</option>
<option class="small" value="Novel">Novel</option>
<option class="small" value="Outdoor & Nature">Outdoor & Nature</option>
<option class="small" value="Paranormal & Metaphysical">Paranormal & Metaphysical</option>
<option class="small" value="Performing Arts">Performing Arts</option>
<option class="small" value="Pets & Animal Care">Pets & Animal Care</option>
<option class="small" value="Philosophy">Philosophy</option>
<option class="small" value="Psychology">Psychology</option>
<option class="small" value="Reference">Reference</option>
<option class="small" value="Religion & Spirituality">Religion & Spirituality</option>
<option class="small" value="Science & Technology">Science & Technology</option>
<option class="small" value="Self-Help">Self-Help</option>
<option class="small" value="Sexuality">Sexuality</option>
<option class="small" value="Social Sciences">Social Sciences</option>
<option class="small" value="Sports & Recreation">Sports & Recreation</option>
<option class="small" value="Teaching & Education">Teaching & Education</option>
<option class="small" value="Transportation">Transportation</option>
<option class="small" value="Travel, Geography & Exploration">Travel, Geography & Exploration</option>
<option class="small" value="True Crime">True Crime</option>
<option class="small" value="Vintage Paperbacks">Vintage Paperbacks</option>
</select>
<label for="bookLanguage" class="keepTogether mr-sm-2">Language:</label>
<input id="bookLanguage" name="bookLanguage" style="width:20%" type="text">
<label for="bookCountry" class="keepTogether mr-sm-2">Country:</label>
<input id="bookCountry" name="bookCountry" style="width:25%" type="text" maxlength="65">
</div>
<div class="border">
<div class="form-check-inline">
<label class="form-check-label">Special Attributes:</label>
</div>
<div class="form-check-inline">
<label class="form-check-label" for="bookDustJacket">
<input id="bookDustJacket" name="bookDustJacket" class="form-check-input" type="checkbox">Dust Jacket
</label>
</div>
<div class="form-check-inline">
<label class="form-check-label" for="bookIllustrated">
<input id="bookIllustrated" name="bookIllustrated" class="form-check-input" type="checkbox">Illustrated
</label>
</div>
<div class="form-check-inline">
<label class="form-check-label" for="bookLargePrint">
<input id="bookLargePrint" name="bookLargePrint" class="form-check-input" type="checkbox">Large Print
</label>
</div>
<div class="form-check-inline">
<label class="form-check-label" for="bookSigned">
<input id="bookSigned" name="bookSigned" class="form-check-input" type="checkbox">Signed
</label>
</div>
</div>
</form>
</div>
<div id="cdDetails" class="container-fluid ">
<form id="cdForm" class="form-fluid">
<div>
<label for="cdUPC" class="keepTogether w3-hide">UPC:</label>
<input id="cdUPC" name="cdUPC" class="w3-hide" type="text" disabled>
<label for="cdArtist" class="keepTogether mr-sm-2">Artist:</label>
<input id="cdArtist" name="cdArtist" style="width:30%" type="text" maxlength="65">
<label for="cdTitle" class="keepTogether mr-sm-2">Title:</label>
<input id="cdTitle" name="cdTitle" style="width:30%" type="text" maxlength="65">
<label for="cdRecordLabel" class="keepTogether mr-sm-2">Label:</label>
<input id="cdRecordLabel" name="cdRecordLabel" style="width:20%" type="text" maxlength="40">
</div>
<div>
<label for="cdReleaseYear" class="keepTogether mr-sm-2">Year:</label>
<input id="cdReleaseYear" name="cdReleaseYear" type="text" style="width:6%" maxlength="4">
<label for="cdDuration" class="keepTogether mr-sm-2">Duration:</label>
<select id="cdDuration" name="cdDuration" data-placeholder="Select Duration..." class="selectpicker" data-width="auto" data-style="btn-outline-dark btn-sm">
<option class="small" value="Album" selected>Album</option>
<option class="small" value="Mini Album">Mini Album</option>
<option class="small" value="Box Set">Box Set</option>
<option class="small" value="EP">EP</option>
<option class="small" value="Single">Single</option>
<option class="small" value="Maxi-Single">Maxi-Single</option>
</select>
<label for="cdGenre" class="keepTogether mr-sm-2">Genre:</label>
<select id="cdGenre" name="cdGenre" data-placeholder="Select Genre..." class="selectpicker" data-width="auto" data-style="btn-outline-dark btn-sm">
<option class="small" value="Blues">Blues</option>
<option class="small" value="Children's">Children's</option>
<option class="small" value="Classical">Classical</option>
<option class="small" value="Comedy & Spoken Word">Comedy & Spoken Word</option>
<option class="small" value="Country">Country</option>
<option class="small" value="Dance & Electronica">Dance & Electronica</option>
<option class="small" value="Folk">Folk</option>
<option class="small" value="Holiday">Holiday</option>
<option class="small" value="Jazz">Jazz</option>
<option class="small" value="Latin">Latin</option>
<option class="small" value="Metal">Metal</option>
<option class="small" value="Military">Military</option>
<option class="small" value="New Age & Easy Listening">New Age & Easy Listening</option>
<option class="small" value="Pop">Pop</option>
<option class="small" value="R&B & Soul">R&B & Soul</option>
<option class="small" value="Rap & Hip-Hop">Rap & Hip-Hop</option>
<option class="small" value="Reggae, Ska & Dub">Reggae, Ska & Dub</option>
<option class="small" value="Religious & Devotional">Religious & Devotional</option>
<option class="small" value="Rock">Rock</option>
<option class="small" value="Soundtracks & Musicals">Soundtracks & Musicals</option>
<option class="small" value="Sound Effects & Nature">Sound Effects & Nature</option>
<option class="small" value="World Music">World Music</option>
</select>
<label for="cdCountry" class="keepTogether mr-sm-2">Country:</label>
<input id="cdCountry" name="cdCountry" type="text" style="width:16%" maxlength="65">
</div>
<div class="border">
<span>Special Attributes:<br/></span>
<div class="form-check-inline">
<label class="form-check-label" for="cdCompilation">
<input id="cdCompilation" name="cdCompilation" class="form-check-input" type="checkbox">Compilation
</label>
</div>
<div class="form-check-inline">
<label class="form-check-label" for="cdDigipak">
<input id="cdDigipak" name="cdDigipak" class="form-check-input" type="checkbox">Digipak
</label>
</div>
<div class="form-check-inline">
<label class="form-check-label" for="cdDualDisc">
<input id="cdDualDisc" name="cdDualDisc" class="form-check-input" type="checkbox">DualDisc
</label>
</div>
<div class="form-check-inline">
<label class="form-check-label" for="cdEnhanced">
<input id="cdEnhanced" name="cdEnhanced" class="form-check-input" type="checkbox">Enhanced
</label>
</div>
<div class="form-check-inline">
<label class="form-check-label" for="cdLiveRecording">
<input id="cdLiveRecording" name="cdLiveRecording" class="form-check-input" type="checkbox">Live
</label>
</div>
<div class="form-check-inline">
<label class="form-check-label" for="cdPromo">
<input id="cdPromo" name="cdPromo" class="form-check-input" type="checkbox">Promo
</label>
</div>
<div class="form-check-inline">
<label class="form-check-label" for="cdReissue">
<input id="cdReissue" name="cdReissue" class="form-check-input" type="checkbox">Reissue
</label>
</div>
<div class="form-check-inline">
<label class="form-check-label" for="cdRemastered">
<input id="cdRemastered" name="cdRemastered" class="form-check-input" type="checkbox">Remastered
</label>
</div>
<div class="form-check-inline">
<label class="form-check-label" for="cdHDCD">
<input id="cdHDCD" name="cdHDCD" class="form-check-input" type="checkbox">HDCD
</label>
</div>
<div class="form-check-inline">
<label class="form-check-label" for="cdGreatestHits">
<input id="cdGreatestHits" name="cdGreatestHits" class="form-check-input" type="checkbox">Greatest Hits
</label>
</div>
<div class="form-check-inline">
<label class="form-check-label" for="cdImport">
<input id="cdImport" name="cdImport" class="form-check-input" type="checkbox">Import
</label>
</div>
<div class="form-check-inline">
<label class="form-check-label" for="cdClub">
<input id="cdClub" name="cdClub" class="form-check-input" type="checkbox">Club
</label>
</div>
</div>
<div>
<label for="cdLanguage" class="keepTogether mr-sm-2">Language:</label>
<input id="cdLanguage" name="cdLanguage" type="text" style="width:12%" maxlength="65" value="English">
<label for="cdModified" class="keepTogether mr-sm-2">Modified:</label>
<select id="cdModified" name="cdModified" class="selectpicker" data-width="auto" data-style="btn-outline-dark btn-sm" onchange="return setModifiedDescription();">
<option class="small" value="No" selected>No</option>
<option class="small" value="Yes">Yes</option>
</select>
<label for="cdModificationDescription" class="keepTogether mr-sm-2">Mod Desc:</label>
<input id="cdModificationDescription" name="cdModificationDescription" type="text" style="width:45%" maxlength="200">
</div>
<div>
<div class="container-fluid row">
<div class="container-fluid col-6">
<label for="cdTracksFormat" class="mb-2 mr-sm-2">Track List (optional):</label>
<input id="cdTracksFormat" type="button" class="btn btn-dark btn-xs border rounded-circle mb-2 mr-sm-2" onclick="return formatTrackList();" value="Format" />
<input id="cdUnorderedTrackList" name="cdUnorderedTrackList" class="mb-2" type="checkbox" onchange="return updateTracklistPreview();">
<label for="cdUnorderedTrackList" class="mb-2 mr-sm-2">Unordered</label>
<textarea id="cdTracks" name="cdTracks" class="form-control" style="font-size:95%!important" rows="12"></textarea>
<p id="pasteAmazon" contenteditable="true" onpaste="pasteAmazon(this)">Paste Amazon Track Listing Here.</p>
</div>
<div class="container-fluid col-6">
<p>Preview:</p>
<div class="border">
<p id="tracklistPreview"></p>
</div>
</div>
</div>
</div>
</form>
</div>
<div id="dvdDetails" class="container-fluid ">
<form id="dvdForm" class="form-fluid">
<div>
<label for="dvdUPC" class="keepTogether mr-sm-2">UPC:</label>
<input id="dvdUPC" name="dvdUPC" style="width:13%" type="text" disabled>
<label for="dvdFormat" class="keepTogether mr-sm-2">Format:</label>
<select id="dvdFormat" name="dvdFormat" data-placeholder="Select Format..." class="selectpicker" data-style="btn-outline-dark btn-sm">
<option class="small" value="Blu-ray Disc">Blu-ray Disc</option>
<option class="small" value="DVD" selected>DVD</option>
<option class="small" value="HD DVD">HD DVD</option>
<option class="small" value="UltraViolet Code">UltraViolet Code</option>
</select>
<label for="dvdTitle" class="keepTogether mr-sm-2">Title:</label>
<input id="dvdTitle" name="dvdTitle" style="width:44%" type="text" maxlength="65">
</div>
<div>
<label for="dvdActor" class="keepTogether mr-sm-2">Actor:</label>
<input id="dvdActor" name="dvdActor" style="width:30%" type="text" maxlength="65">
<label for="dvdLeadingRole" class="keepTogether mr-sm-2">Lead:</label>
<input id="dvdLeadingRole" name="dvdLeadingRole" style="width:30%" type="text" maxlength="65">
<label for="dvdDirector" class="keepTogether mr-sm-2">Director:</label>
<input id="dvdDirector" name="dvdDirector" style="width:20%" type="text" maxlength="65">
</div>
<div>
<label for="dvdReleaseYear" class="keepTogether mr-sm-2">Movie Year:</label>
<input id="dvdReleaseYear" name="dvdReleaseYear" style="width:8%" type="text" maxlength="4">
<label for="dvdDVDEditionYear" class="keepTogether mr-sm-2">DVD Year:</label>
<input id="dvdDVDEditionYear" name="dvdDVDEditionYear" style="width:8%" type="text" maxlength="4">
<label for="dvdGenre" class="keepTogether mr-sm-2">Genre:</label>
<select id="dvdGenre" name="dvdGenre" data-placeholder="Select Genre..." class="selectpicker" data-style="btn-outline-dark btn-sm">
<option class="small" value=" " selected> </option>
<option class="small" value="Action & Adventure">Action & Adventure</option>
<option class="small" value="Animation & Anime">Animation & Anime</option>
<option class="small" value="Children's & Family">Children's & Family</option>
<option class="small" value="Comedy">Comedy</option>
<option class="small" value="Documentary">Documentary</option>
<option class="small" value="Drama">Drama</option>
<option class="small" value="Educational">Educational</option>
<option class="small" value="Exercise & Fitness">Exercise & Fitness</option>
<option class="small" value="Foreign Language">Foreign Language</option>
<option class="small" value="Horror">Horror</option>
<option class="small" value="Music & Concerts">Music & Concerts</option>
<option class="small" value="Musicals & Broadway">Musicals & Broadway</option>
<option class="small" value="Romance">Romance</option>
<option class="small" value="Sci-Fi & Fantasy">Sci-Fi & Fantasy</option>
<option class="small" value="Sports">Sports</option>
<option class="small" value="Thriller & Mystery">Thriller & Mystery</option>
<option class="small" value="TV Shows">TV Shows</option>
<option class="small" value="Westerns">Westerns</option>
</select>
<label for="dvdRating" class="keepTogether mr-sm-2">Rating:</label>
<select id="dvdRating" name="dvdRating" data-placeholder="Select Rating..." class="selectpicker" data-style="btn-outline-dark btn-sm">
<option class="small" value="G">G</option>
<option class="small" value="PG">PG</option>
<option class="small" value="PG-13">PG-13</option>
<option class="small" value="R">R</option>
<option class="small" value="NR">NR</option>
<option class="small" value="NC-17">NC-17</option>
<option class="small" value="TV-Y">TV-Y</option>
<option class="small" value="TV-Y7">TV-Y7</option>
<option class="small" value="TV-G">TV-G</option>
<option class="small" value="TV-PG">TV-PG</option>
<option class="small" value="TV-14">TV-14</option>
<option class="small" value="TV-MA">TV-MA</option>
</select>
</div>
<div>
<label for="dvdRegionCode" class="keepTogether mr-sm-2">Region:</label>
<select id="dvdRegionCode" name="dvdRegionCode" data-placeholder="Select Region..." class="selectpicker" data-width="auto" data-style="btn-outline-dark btn-sm">
<option class="small" value="Blu-ray: Region Free">Blu-ray: Region Free</option>
<option class="small" value="Blu-ray: A (Americas, Southeast Asia...)">Blu-ray: A</option>
<option class="small" value="Blu-ray: B (Europe, AU, NZ, Africa...)">Blu-ray: B</option>
<option class="small" value="Blu-ray: C (China, Russia, India...)">Blu-ray: C</option>
<option class="small" value="DVD: 0/All (Region Free/Worldwide)">DVD: 0/All</option>
<option class="small" value="DVD: 1 (US, Canada...)" selected>DVD: 1</option>
<option class="small" value="DVD: 2 (Europe, Japan, Middle East...)">DVD: 2</option>
<option class="small" value="DVD: 3 (Southeast Asia, Taiwan, HK...)">DVD: 3</option>
<option class="small" value="DVD: 4 (AU, NZ, Latin America...)">DVD: 4</option>
<option class="small" value="DVD: 5 (Russia, India, Africa...)">DVD: 5</option>
<option class="small" value="DVD: 6 (China)">DVD: 6 (China)</option>
</select>
<label for="dvdRental" class="keepTogether mr-sm-2">Rental:</label>
<select id="dvdRental" name="dvdRental" class="selectpicker" data-width="fit" data-style="btn-outline-dark btn-sm">
<option class="small" value="No" selected>No</option>
<option class="small" value="Yes">Yes</option>
</select>
<label for="dvdSeason" class="keepTogether mr-sm-2">Season:</label>
<select id="dvdSeason" name="dvdSeason" data-placeholder="Select Season..." class="selectpicker" data-width="auto" data-style="btn-outline-dark btn-sm">
<option class="small" value="" selected></option>
<option class="small" value="Complete Series Box Set">Complete Series Box Set</option>
<option class="small" value="1">1</option>
<option class="small" value="2">2</option>
<option class="small" value="3">3</option>
<option class="small" value="4">4</option>
<option class="small" value="5">5</option>
<option class="small" value="6">6</option>
<option class="small" value="7">7</option>
<option class="small" value="8">8</option>
<option class="small" value="9">9</option>
<option class="small" value="10">10</option>
<option class="small" value="11">11</option>
<option class="small" value="12">12</option>
<option class="small" value="13">13</option>
<option class="small" value="14">14</option>
<option class="small" value="15">15</option>
<option class="small" value="16">16</option>
<option class="small" value="17">17</option>
<option class="small" value="18">18</option>
<option class="small" value="19">19</option>
<option class="small" value="20">20</option>
<option class="small" value="21">21</option>
<option class="small" value="22">22</option>
<option class="small" value="23">23</option>
<option class="small" value="24">24</option>
</select>
<label for="dvdCountry" class="keepTogether mr-sm-2">Country:</label>
<input id="dvdCountry" name="dvdCountry" style="width:14%" type="text" maxlength="65">
</div>
<div class="border">
<div class="form-check-inline">
<label class="form-check-label">Special Attributes:</label>
</div>
<div class="form-check-inline">
<label class="form-check-label" for="dvd3D">
<input id="dvd3D" name="dvd3D" class="form-check-input" type="checkbox">3D
</label>
</div>
<div class="form-check-inline">
<label class="form-check-label" for="dvdAnniversaryEdition">
<input id="dvdAnniversaryEdition" name="dvdAnniversaryEdition" class="form-check-input" type="checkbox">Anniversary Edition
</label>
</div>
<div class="form-check-inline">
<label class="form-check-label" for="dvdBoxSet">
<input id="dvdBoxSet" name="dvdBoxSet" class="form-check-input" type="checkbox">Box Set
</label>
</div>
<div class="form-check-inline">
<label class="form-check-label" for="dvdCollectorsEdition">
<input id="dvdCollectorsEdition" name="dvdCollectorsEdition" class="form-check-input" type="checkbox">Collector's Edition
</label>
</div>
<div class="form-check-inline">
<label class="form-check-label" for="dvdDeluxeEdition">
<input id="dvdDeluxeEdition" name="dvdDeluxeEdition" class="form-check-input" type="checkbox">Deluxe Edition
</label>
</div>
<div class="form-check-inline">
<label class="form-check-label" for="dvdDirectorsCut">
<input id="dvdDirectorsCut" name="dvdDirectorsCut" class="form-check-input" type="checkbox">Director's Cut
</label>
</div>
<div class="form-check-inline">
<label class="form-check-label" for="dvdExtendedEdition">
<input id="dvdExtendedEdition" name="dvdExtendedEdition" class="form-check-input" type="checkbox">Extended Edition
</label>
</div>
<div class="form-check-inline">
<label class="form-check-label" for="dvdFullScreen">
<input id="dvdFullScreen" name="dvdFullScreen" class="form-check-input" type="checkbox">Full Screen
</label>
</div>
<div class="form-check-inline">
<label class="form-check-label" for="dvdLimitedEdition">
<input id="dvdLimitedEdition" name="dvdLimitedEdition" class="form-check-input" type="checkbox">Limited Edition
</label>
</div>
<div class="form-check-inline">
<label class="form-check-label" for="dvdPromo">
<input id="dvdPromo" name="dvdPromo" class="form-check-input" type="checkbox">Promo
</label>
</div>
<div class="form-check-inline">
<label class="form-check-label" for="dvdSignatureCollection">
<input id="dvdSignatureCollection" name="dvdSignatureCollection" class="form-check-input" type="checkbox">Signature Collection
</label>
</div>
<div class="form-check-inline">
<label class="form-check-label" for="dvdSpecialEdition">
<input id="dvdSpecialEdition" name="dvdSpecialEdition" class="form-check-input" type="checkbox">Special Edition
</label>
</div>
<div class="form-check-inline">
<label class="form-check-label" for="dvdSteelbook">Steelbook
<input id="dvdSteelbook" name="dvdSteelbook" class="form-check-input" type="checkbox">
</label>
</div>
<div class="form-check-inline">
<label class="form-check-label" for="dvdUnratedEdition">
<input id="dvdUnratedEdition" name="dvdUnratedEdition" class="form-check-input" type="checkbox">Unrated Edition
</label>
</div>
<div class="form-check-inline">
<label class="form-check-label" for="dvdWidescreen">
<input id="dvdWidescreen" name="dvdWidescreen" class="form-check-input" type="checkbox">Widescreen
</label>
</div>
</div>
</form>
</div>
<div id="tradingCardDetails" class="container-fluid w3-hide">
<form id="tradingCardForm" class="form-fluid">
<div>
<label for="tcPlayer" class="keepTogether mr-sm-2">Player:</label>
<input id="tcPlayer" name="tcPlayer" style="width:29%" type="text">
<label for="tcPosition" class="keepTogether mr-sm-2">Position:</label>
<input id="tcPosition" name="tcPosition" style="width:8%" type="text">
<label for="tcTeam" class="keepTogether mr-sm-2">Team:</label>
<input id="tcTeam" name="tcTeam" style="width:29%" type="text">
<label for="tcSeason" class="keepTogether mr-sm-2">Season:</label>
<input id="tcSeason" name="tcSeason" style="width:8%" type="text">
</div>
<div>
<label for="tcManufacturer" class="keepTogether mr-sm-2">Manufacturer:</label>
<input id="tcManufacturer" name="tcManufacturer" style="width:30%" type="text">
<label for="tcNumber" class="keepTogether mr-sm-2">Number:</label>
<input id="tcNumber" name="tcNumber" style="width:8%" type="text">
<label for="tcSeries" class="keepTogether mr-sm-2">Series:</label>
<input id="tcSeries" name="tcSeries" style="width:30%" type="text">
</div>
<div>
<div class="form-check-inline">
<label class="form-check-label" for="tcPoA">
<input id="tcPoA" name="tcPoA" class="form-check-input" type="checkbox">Piece of Authentic
</label>
</div>
<div class="form-check-inline">
<label class="form-check-label" for="tcRookie">
<input id="tcRookie" name="tcRookie" class="form-check-input" type="checkbox">Rookie
</label>
</div>
<div class="form-check-inline">
<label class="form-check-label" for="tcSerial">
<input id="tcSerial" name="tcSerial" class="form-check-input" type="checkbox">Serialized
</label>
</div>
</div>
</form>
</div>
<div id="results" class="container-fluid w3-hide"></div>
</div>
<div class="clearfix">
<input id="verify" type="submit" class="btn btn-danger" onclick="verifyListingImage();" value="Verify" />
<input id="list" type="button" class="btn btn-danger mx-3" onclick="submitListing(0);" value="List" />
<input id="savexml" type="button" class="btn btn-danger mx-2" onclick="submitListing(1);" value="XML" />
<input type="button" class="btn btn-dark float-right" onclick="resetForm()" value="Reset form" />
</div>
</div>
<div class="container-fluid col-6">
<div class="container border bg-light">
<div id="productinfo"></div>
<div id="productinfoSearch"></div>
<div id="productinfoDuplicate"></div>
</div>
<div id="discogsReleases" class="container border w3-hide"></div>
<div id="prices" class="container border w3-hide"></div>
</div>
</div>
</div>
</div>
<footer class="container-fluid text-center border border-bottom-0 border-left-0 border-right-0">
<div w3-include-html="php/footer.php"></div>
</footer>
</div>
<script>
// Globals
var picturesAreLoaded = false;
var xml = '';
var category = '';
var catalogTitle = '';
var catalogActorNames = '';
var listItems = [];
var additionalPictures = [];
var additionalPicturesToMove = [];
var isManualMode = false;
var isDuplicate = false;
var eBayProductId = '';
var releaseInTitle = false;
var CC = -1; /* 0=Book, 1=CD, 2=DVD, 3=Trading Card */
var ShippingProfileIdList = ['146987753023', '146987646023', '146987753023', '125181485023'];
var ShippingProfileNameList = ['Free Economy Shipping', 'Free Standard Shipping', 'Free Economy Shipping', 'Trading Card without Tracking Number'];
var MinPriceList = ['5.98', '5.95', '5.95', '0.99'];
var ProductListingDetailsNameList = ['ISBN', 'UPC', 'UPC', 'UPC'];
var StoreCategoryList = ['30460217018', '30432075018', '30606323018', '1'];
var movieFormats = ["DVD", "Blu-ray Disc", "HD DVD"];
var auctionFormat = ['FixedPriceItem', 'FixedPriceItem', 'FixedPriceItem', 'Chinese'];
var discogsQty = 0;
var ConditionIdList = ['2750', '4000', '4000', '4000'];
var ConditionDescriptionList = ['The book is in mint condition and shows only slight cover wear due to shelf storage. The cover and binding are undamaged and the pages have no markings or writing. Please view all images of the actual book.',
'The disc is in near mint/mint condition and has been tested by us. The jewel case is in great shape, the inside tray is intact. Please view the actual images.',
'The case is in good shape, the disc in near mint/mint condition. Please view the actual images.',
'The card is in near mint/mint condition and will be mailed out in a sleeve within 1 business day after payment cleared. Expedited service with tracking number and top loader is available at an extra charge.'
];
var ConditionDescriptionCdPlural = 'The discs are in near mint/mint condition and have been tested by us. The jewel case is in great shape, the inside trays are intact. Please view the actual images.';
var ConditionDescriptionCdNewCase = 'The disc is in near mint/mint condition and comes in a new jewel case. Please view the actual images.';
var ConditionDescriptionCdDigipak = 'The disc is in near mint/mint condition and has been tested by us. The digipak is in good shape, the inside tray intact. Please view the actual images.';
var Description1 = '<meta name="viewport" content="width=device-width, initial-scale=1.0"><style>.w3-ol{list-style-type:1}.w3-ol li{padding:8px 16px;border-bottom:1px solid #ddd}.w3-ol li:last-child{border-bottom:none} img {max-width:100%}.tabs {max-width:90%;float:none;list-style: none;margin: 0 auto;}.tabs:after {content:"";display:table;clear: both;}.tabs input[type=radio] {display:none;}.tabs label {opacity:0.5;display:block;font-size:30px;font-weight:normal;text-decoration:none;text-align:center;line-height:2;cursor:pointer;-webkit-transition:all 0.5s;transition:all 0.5s;}.tabs label span {display:inline-block;float:left;}.tabs label:hover {opacity:1;}.tab-content {display:none;width:100%;float:left;padding:8px 16px;box-shadow:0 2px 5px 0 rgba(0,0,0,0.16),0 2px 10px 0 rgba(0,0,0,0.12);border-radius:8px;background-color:#ffffff;}.tab-content * {-webkit-animation:scale 0.7s ease-in-out;-moz-animation:scale 0.7s ease-in-out;animation:scale 0.7s ease-in-out;}@keyframes scale {0% {transform:scale(0.9);opacit
y:0;}50% {transform:scale(1.01);opacity:0.5;}100% {transform:scale(1);opacity:1;}}.tabs [id^="tab"]:checked + label { opacity:1; }#tab1:checked ~ #tab-content1, #tab2:checked ~ #tab-content2, #tab3:checked ~ #tab-content3 {display:block;}.header-logo { max-height:100px!important; }.header-company-name { font-size:64px!important; }.header-button-1, .header-button-2, .header-button-3, .header-button-4, .header-button-5 { }.header-icon-text { font-size:30px!important; }.header-icon { width:50px!important; height:50px!important;}.paypal-logo { max-height:100px!important; }.tab-alternate-header { display:none!important; }@media only screen and (max-width:780px) {.header-logo { max-height:80px!important; }.header-company-name { font-size:48px!important; }.header-button-2, .header-button-3, .header-button-5 { display:none!important; }.header-icon-text { font-size:24px!important; }.header-icon { width:45px!important; height:45px!important;}.paypal-logo { max-height:80px!important; }.tabs {max-width:100%!important;}.
tab-button { display:none!important; }.tab-alternate-header { display:block!important; }#tab-content1, #tab-content2, #tab-content3 { display:block!important; }}@media only screen and (max-width:500px) {.header-logo { max-height:60px!important; }.header-company-name { font-size:32px!important; }.header-button-2, .header-button-3, .header-button-4, .header-button-5 { display:none!important; }.header-icon-text { font-size:20px!important; }.header-icon { width:40px!important; height:40px!important;}.paypal-logo { max-height:60px!important; }.tabs {max-width:100%!important;}.tab-button { display:none!important; }.tab-alternate-header { display:block!important; }#tab-content1, #tab-content2, #tab-content3 { display:block!important; }}</style><link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.css"><div class="w3-main"><div class="w3-container w3-light-grey w3-text-black w3-round-large" style="background-color:hsla(200, 100%, 25%, .8);"><div class="w3-center w3-text-white w3-round-large w3-border-w
hite w3-topbar w3-bottombar w3-rightbar w3-leftbar " style="background-color:hsla(200, 100%, 25%, .8);"><h2 class="header-icon-text"><img class="header-icon" alt="Clipboard" src="https://cdn.shopify.com/s/files/1/0018/0273/1609/files/if_clipboard_1055091.png"> Product Description</h2></div><div class="row "><!-- *************** Place description here ****************** --><div class="w3-container w3-twothird">';
var Description2 = '</div><div class="w3-container w3-third"><img class="w3-image w3-border w3-right" alt="';
var Description2a = '" src="';
var DescImage;
var Description3 = '"></div><!-- *************** Place description here ****************** --></div></div><div class="w3-container w3-light-grey w3-text-black w3-round-large" style="background-color:hsla(200, 100%, 25%, .8);"><div class="tabs "><!-- Radio button and label for #tab-content1 --><input name="tabs" id="tab1" checked="" type="radio"><label for="tab1"><span class="tab-button header-icon-text w3-center w3-text-white w3-round-large w3-border-white w3-topbar w3-bottombar w3-rightbar w3-leftbar " style="background-color:hsla(200, 100%, 25%, .8);"><img class="header-icon" alt="Credit Card" src="https://cdn.shopify.com/s/files/1/0018/0273/1609/files/if_creditcard_1055079.png"> Payments</span></label><!-- Radio button and label for #tab-content2 --><input class="tab-button" name="tabs" id="tab2" type="radio"><label for="tab2"><span class="tab-button header-icon-text w3-center w3-text-white w3-round-large w3-border-white w3-topbar w3-bottombar w3-rightbar w3-leftbar " style="background-color:hsla(200,
100%, 25%, .8);"><img class="header-icon" alt="Dolly" src="https://cdn.shopify.com/s/files/1/0018/0273/1609/files/if_dolly_1055070.png"> Shipping</span></label><!-- Radio button and label for #tab-content3 --><input class="tab-button" name="tabs" id="tab3" type="radio"><label for="tab3"><span class="tab-button header-icon-text w3-center w3-text-white w3-round-large w3-border-white w3-topbar w3-bottombar w3-rightbar w3-leftbar " style="background-color:hsla(200, 100%, 25%, .8);"><img class="header-icon" alt="Delivery Truck" src="https://cdn.shopify.com/s/files/1/0018/0273/1609/files/if_truck_1054949.png"> Return</span> </label><div id="tab-content1" class="tab-content"><div class="tab-alternate-header w3-center w3-text-white w3-round-large w3-border-white w3-topbar w3-bottombar w3-rightbar w3-leftbar " style="background-color:hsla(200, 100%, 25%, .8);"><h2 class="header-icon-text"><img class="header-icon" alt="Credit Card" src="https://cdn.shopify.com/s/files/1/0018/0273/1609/files/if_creditcard_1055079.png
"> Payments</h2></div><img class="paypal-logo w3-image w3-right " alt="PayPal Seal" src="https://cdn.shopify.com/s/files/1/0018/0273/1609/files/paypal-verified.png"><p>We accept PayPal and all major credit cards through secure eBay Managed Payments.</p><ul><li>Taxes may be applicable at checkout.</li><li>Payment must be received in full within 3 days from the date of purchase.</li><li>We leave positive eBay feedback as soon as the payment clears.</li></ul></div><!-- #tab-content1 --><div id="tab-content2" class="tab-content"><div class="tab-alternate-header w3-center w3-text-white w3-round-large w3-border-white w3-topbar w3-bottombar w3-rightbar w3-leftbar " style="background-color:hsla(200, 100%, 25%, .8);"><h2 class="header-icon-text"><img class="header-icon" alt="Dolly" src="https://cdn.shopify.com/s/files/1/0018/0273/1609/files/if_dolly_1055070.png"> Shipping</h2></div>';
var DescriptionFreeShipping = '<p>We offer free USPS Economy or Media Mail, expedited service is available at an additional cost.</p>';
var DescriptionTradingCardShipping = '<p>Standard USPS shipping without Tracking Number. Expedited service with tracking number and top loader available at an extra cost.</p>';
var Description4 = '<ul><li>All items will be shipped from the United States.</li><li>We will only ship to the confirmed PayPal address. Please make sure it matches your shipping address.</li><li>Shipping Monday through Saturday, excluding federal holidays, within 24 hours after payment is received.</li><li>If a tracking number is provided by the shipping carrier, we will update your order with the tracking information.</li><li>Shipping Outside of the United States incurs additional shipping charges.</li></ul></div><!-- #tab-content2 --><div id="tab-content3" class="tab-content"><div class="tab-alternate-header w3-center w3-text-white w3-round-large w3-border-white w3-topbar w3-bottombar w3-rightbar w3-leftbar " style="background-color:hsla(200, 100%, 25%, .8);"><h2 class="header-icon-text"><img class="header-icon" alt="Delivery Truck" src="https://cdn.shopify.com/s/files/1/0018/0273/1609/files/if_truck_1054949.png"> Return</h2></div><p>Please <a href="https://contact.ebay.com/ws/eBayISAPI.dll?ContactUserNex
tGen&recipient=muna_trading" target="_blank">contact us</a> before returning an item or leaving negative feedback. We will get back to you immediately and work with you to make your purchase right. </p></div><!-- #tab-content3 --></div></div><footer class="w3-container w3-center"><div class="w3-container w3-center "><a class="header-button-1 w3-button w3-round-xlarge w3-border w3-border-black w3-white" href="https://stores.ebay.com/munatrading" target="_blank"><img alt="Sales Tag" src="https://cdn.shopify.com/s/files/1/0018/0273/1609/files/if_shop_1054978.png" width="35px" height="35px"> Other Items</a><a class="header-button-2 w3-button w3-round-xlarge w3-border w3-border-black w3-white" href="https://feedback.ebay.com/ws/eBayISAPI.dll?ViewFeedback2&userid=muna_trading&ftab=AllFeedback" target="_blank"><img alt="Paper and pencil" src="https://cdn.shopify.com/s/files/1/0018/0273/1609/files/if_compose_1055085.png" width="35px" height="35px"> Feedbacks</a><a class="header-button-3 w3-button w3-roun
d-xlarge w3-border w3-border-black w3-white" href="https://www.ebay.com/usr/muna_trading" target="_blank"><img alt="Contacts" src="https://cdn.shopify.com/s/files/1/0018/0273/1609/files/if_contacts_1055082.png" width="35px" height="35px"> About Us</a><a class="header-button-4 w3-button w3-round-xlarge w3-border w3-border-black w3-white" href="https://contact.ebay.com/ws/eBayISAPI.dll?ContactUserNextGen&recipient=muna_trading" target="_blank"><img alt="Envelope" src="https://cdn.shopify.com/s/files/1/0018/0273/1609/files/if_mail_1055030.png" width="35px" height="35px"> Contact Us</a><a class="header-button-5 w3-button w3-round-xlarge w3-border w3-border-black w3-white" href="https://my.ebay.com/ws/eBayISAPI.dll?AcceptSavedSeller&mode=0&preference=0&ssPageName=STRK:MEFS:ADDMP&sellerid=muna_trading" target="_blank"><img alt="Heart" src="https://cdn.shopify.com/s/files/1/0018/0273/1609/files/if_heart_1055045.png" width="35px" height="35px"> Add To Favorites</a></div><div class="w3-container w
3-center "><img class="header-logo w3-image" src="https://cdn.shopify.com/s/files/1/0018/0273/1609/files/MUNA_-_Logo_100x100.png" alt="MUNA Logo"></div><p>Thanks so much for looking at our auction and please do not hesitate to <a href="https://contact.ebay.com/ws/eBayISAPI.dll?ContactUserNextGen&recipient=muna_trading" target="_blank">contact us</a> should you have any questions!</p></footer></div>';
var DescCore = '';
var ImageURLs = [];
var maxAdditionalImages = 8;
var imagesToUpload = 0;
var imageUploadError = false;
var ImageRetryCount = [];
var TitleRetryCount = [];
var titlesToRead = 0;
var upc = '';
// Initialize Configuration Variables
function initConfig() {
var i;
var j;
eBayAuthToken = readCookie();
if (eBayAuthToken.length > 0) {
connected();
}
if (eBayAuthTokenFlag === false) {
var x = document.getElementById("login");
if (x.className.indexOf("w3-show") == -1) {
x.className += " w3-show";
}
}
categoryValues();
requireNewVerify();
$('#listForm').on('change input cut paste',requireNewVerify);
$('#bookForm').on('change input cut paste',requireNewVerify);
$('#cdForm').on('change input cut paste',requireNewVerify);
$('#dvdForm').on('change input cut paste',requireNewVerify);
$('#tradingCardForm').on('change input cut paste',requireNewVerify);
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
//window.alert(this.responseText);
var parser = new DOMParser();
var htmlDoc = parser.parseFromString(this.responseText, "text/html");
var x = htmlDoc.getElementsByTagName("a");
listItems = [];
additionalPictures = [];
titlesToRead = 0;
TitleRetryCount = [];
for (i = 0, j = 0; i < x.length; i++) {
if (htmlDoc.getElementsByTagName("a")[i].innerHTML.endsWith(configImage1Extension)) {
var n = htmlDoc.getElementsByTagName("a")[i].innerHTML.lastIndexOf(configImage1Extension);
listItems[j] = htmlDoc.getElementsByTagName("a")[i].innerHTML.substr(0, n);
++titlesToRead;
getTitleFromeBay(listItems[j], j);
j++;
}
}
for (i = 0; i < x.length; i++) {
if (htmlDoc.getElementsByTagName("a")[i].innerHTML.endsWith(configImage1Extension) ||
htmlDoc.getElementsByTagName("a")[i].innerHTML.endsWith(configImage2Extension) ||
htmlDoc.getElementsByTagName("a")[i].innerHTML.endsWith(configdescriptionImageExtension)) {
continue;
}
if (htmlDoc.getElementsByTagName("a")[i].innerHTML.endsWith(".jpg")) {
for (j = 0; j < listItems.length; j++) {
if (htmlDoc.getElementsByTagName("a")[i].innerHTML.startsWith(listItems[j]) && !htmlDoc.getElementsByTagName("a")[i].innerHTML.endsWith(" - small.jpg")) {
if (additionalPictures[j] === undefined) {
additionalPictures[j] = [];
}
additionalPictures[j].push(htmlDoc.getElementsByTagName("a")[i].innerHTML);
} else if (htmlDoc.getElementsByTagName("a")[i].innerHTML.startsWith(listItems[j]) && htmlDoc.getElementsByTagName("a")[i].innerHTML.endsWith(" - small.jpg")) {
if (additionalPicturesToMove[j] === undefined) {
additionalPicturesToMove[j] = [];
}
additionalPicturesToMove[j].push(htmlDoc.getElementsByTagName("a")[i].innerHTML);
}
}
}
}
function checkTitlesToRead() {
if (titlesToRead > 0) {
window.setTimeout(checkTitlesToRead, 100); // wait 100 milliseconds
} else {
sortList(document.getElementById("keyword"));
$("#keyword").selectpicker('refresh');
document.getElementById("bookDetails").className += " w3-hide";
document.getElementById("cdDetails").className += " w3-hide";
document.getElementById("dvdDetails").className += " w3-hide";
}
}
checkTitlesToRead();
}
};
xhttp.open("GET", configListingUrl + '?t=' + Math.random(), true);
xhttp.send();
}
function sortList(lb) {
var arrTexts = [];
var res;
var i;
var lbCopy = $.extend(true, {}, lb);
for (i = 0; i < lb.length; i++) {
arrTexts[i] = lb.options[i].style.color + '|' + lb.options[i].id + '|' + lb.options[i].text + '|' + i;
}
arrTexts.sort();
for (i = 0; i < arrTexts.length; i++) {
res = arrTexts[i].split('|');
lb[i] = lbCopy[res[3]];
}
}
function getTitleFromeBay(identifier, index) {
var maxRetries = 5;
if (TitleRetryCount[index] === undefined){
TitleRetryCount[index] = 0;
}
// Construct the request
url = configeBayShopping + "?";
url += "callname=FindProducts";
url += "&version=" + configeBayShoppingVersion;
url += "&appid=" + configAppid;
url += "&responseencoding=JSON";
url += "&siteid=0";
url += "&MaxEntries=1";
url += "&MessageID=";
url += index;
if (isNumeric(identifier)) {
url += "&ProductID.Type=UPC&ProductID.Value=" + identifier.trim();
} else {
url += "&QueryKeywords=";
url += encodeURIComponent(identifier.trim().replace(/ /g, "+"));
}
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
if (this.responseText) {
_cb_getTitleFromeBay(JSON.parse(this.responseText));
} else {
if (TitleRetryCount[index] < maxRetries){
++TitleRetryCount[index];
getTitleFromeBay(identifier, index);
} else {
_cb_getTitleFromeBay(JSON.parse('{"Ack":"NO RETURN DATA"}'));
}
}
}
};
xhttp.open("GET", configProxyUrl, true);
xhttp.setRequestHeader("X-Proxy-Url", /*encodeURI(*/url/*)*/);
xhttp.send();
return false;
}
// Create new page for single item
function _cb_getTitleFromeBay(root) {
var optionsAsString;
var JsonObj;
var color;
if (root.Ack == 'NO RETURN DATA') {
/* No correlation id */
} else if (root.Ack != 'Success') {
color = 'purple';
if (isNumeric(listItems[root.CorrelationID])) {
var validator = new Barcoder();
var validation = validator.validate(listItems[root.CorrelationID]);
if (!validation.isValid) {
color = 'red';
}
}
optionsAsString = "<option class='small' id='" + escapeHtml(listItems[root.CorrelationID]) + "' " + "value='" + escapeHtml(listItems[root.CorrelationID]) + "'>" + listItems[root.CorrelationID] + "</option>";
document.getElementById("keyword").innerHTML += optionsAsString;
document.getElementById(listItems[root.CorrelationID]).style.color = color;
} else {
JsonObj = typeof root.Product[0] != 'object' ? JSON.parse(root.Product[0]) : root.Product[0];
optionsAsString = "<option class='small'' id='" + escapeHtml(listItems[root.CorrelationID]) + "' " + "value='" + escapeHtml(listItems[root.CorrelationID]) + "'>" + listItems[root.CorrelationID] + " - " + JsonObj.Title + "</option>";
document.getElementById("keyword").innerHTML += optionsAsString;
}
--titlesToRead;
}
// Create new page for single item
function _cb_FindProducts(root) {
var j;
var x;
var ack = root.Ack;
var MoreResults = root.MoreResults;
if (ack != 'Success' || MoreResults) { // bugbug allow to look at all results
x = document.getElementById("productinfo");
y = document.getElementById("productinfoSearch");
if (root.Errors !== undefined && root.Errors[0].ShortMessage != 'No match found.') {
x.innerHTML = "<h2>eBay API Error<h2>";
x.innerHTML += "<p>Id: " + root.Errors[0].ErrorCode + "<br/>";
x.innerHTML += "Domain: " + root.Errors[0].ErrorClassification + "<br/>";
x.innerHTML += "Severity: " + root.Errors[0].SeverityCode + "<br/>";
x.innerHTML += "Category: " + root.Errors[0].category + "<br/>";
x.innerHTML += "Short Message: " + root.Errors[0].ShortMessage + "<br/>";
x.innerHTML += "Long Message: " + root.Errors[0].LongMessage + "<br/>";
x.innerHTML += "Build/Version: " + root.Build + '/' + root.Version + "</p>";
x.innerHTML += "<p>URL: " + "<a href=\"" + url + "\" target=\"_blank\">" + url + "</a>" + "</p>";
} else {
x.innerHTML = '<h2 class="bg-danger">Manual Mode</h3>';
x.innerHTML += "<h3>" + document.getElementById("keyword").value + "</h3>";
catalogTitle = document.getElementById("keyword").value.trim();
if (isNumeric(catalogTitle)) {
if (catalogTitle.startsWith('978') || catalogTitle.startsWith('979')) {
y.innerHTML += '<a href="https://isbnsearch.org/isbn/' + catalogTitle + '" target="blank"><button class="btn mx-2"><i class="fa fa-search"></i> ISBN Search</button></a>';
y.innerHTML += '<a href="https://www.amazon.com/s/ref=nb_sb_noss?url=search-alias%3Dpopular&field-keywords=' + catalogTitle + '" target="blank"><button class="btn mx-2"><i class="fa fa-search"></i> Amazon</button></a>';
y.innerHTML += '<a href="https://dev.munatrading.com/ebay/search.html?keyword=' + catalogTitle.trim().replace(/ /g, "+").substr(0, 98) + '&listingType=All&hideDuplicateItems=on&locatedIn=WorldWide&sortOrder=PricePlusShippingLowest&results=100" target="blank"><button class="btn mx-2"><i class="fa fa-search"></i> eBay</button></a>';
} else {
y.innerHTML += '<a href="https://dvdlist.kazart.com/queryDVDList.php3?search=' + catalogTitle + '&select=UPC&Submit=Search&since=All&genre=All&date=All&status=All&sort1=title&sort1by=ASC&sort2=year&sort2by=ASC&sort3=genre&sort3by=ASC" target="blank"><button class="btn mx-2"><i class="fa fa-search"></i> Kazart</button></a>';
y.innerHTML += '<a href="https://www.amazon.com/s/ref=nb_sb_noss?url=search-alias%3Dpopular&field-keywords=' + catalogTitle + '" target="blank"><button class="btn mx-2"><i class="fa fa-search"></i> Amazon</button></a>';
y.innerHTML += '<a href="https://dev.munatrading.com/ebay/search.html?keyword=' + catalogTitle.trim().replace(/ /g, "+").substr(0, 98) + '&listingType=All&hideDuplicateItems=on&locatedIn=WorldWide&sortOrder=PricePlusShippingLowest&results=100" target="blank"><button class="btn mx-2"><i class="fa fa-search"></i> eBay</button></a>';
}
} else {
catalogTitle = document.getElementById("keyword").value.trim();
splitTradingCardElements();
fillForm();
y.innerHTML += '<a href="https://dev.munatrading.com/ebay/search.html?keyword=' + catalogTitle.trim().replace(/ /g, "+").substr(0, 98) + '&listingType=All&hideDuplicateItems=on&locatedIn=WorldWide&sortOrder=PricePlusShippingLowest&results=100" target="blank"><button class="btn mx-2"><i class="fa fa-search"></i> eBay</button></a>';
}
printManualButtons();
}
unsetAdditionalImages();
for (i = 0; i < additionalPictures.length; i++) {
if (additionalPictures[i] !== undefined && additionalPictures[i][0].startsWith(document.getElementById("keyword").value.trim())) {
if (additionalPictures[i].length > maxAdditionalImages) {
document.getElementById("productinfo").innerHTML += '<p class="bg-danger"><strong>Too many additional images.</a></strong></p>';
} else {
for (j = 0; j < additionalPictures[i].length; j++) {
setAdditionalImage(j + 3, additionalPictures[i][j]);
}
}
}
}
document.getElementById("image1").src = configListingUrl + document.getElementById("keyword").value.trim() + configImage1Extension;
document.getElementById("image2").src = configListingUrl + document.getElementById("keyword").value.trim() + configImage2Extension;
document.getElementById("descriptionImage").src = configListingUrl + document.getElementById("keyword").value.trim() + configdescriptionImageExtension;
document.getElementById("image1anchor").href = document.getElementById("image1").src;
document.getElementById("image2anchor").href = document.getElementById("image2").src;
isManualMode = true;
catalogActorNames = '';
isDuplicate = false;
findDuplicateListing();
findPotentialDuplicateListing();
findShopifyDuplicateListing();
upc = catalogTitle;
return;
}
isManualMode = false;
var str = "";
var str2 = "";
var i = 0;
var JsonObj = typeof root.Product[0] != 'object' ? JSON.parse(root.Product[0]) : root.Product[0];
var DetailsURL = JsonObj.DetailsURL;
var ItemSpecifics = JsonObj.ItemSpecifics;
var StockPhotoURL = JsonObj.StockPhotoURL;
var ProductID = JsonObj.ProductID;
var TotalProducts = Number(root.TotalProducts);
var searchStr = '';
var munaSearchStr = '';
catalogTitle = JsonObj.Title;
catalogActorNames = '';
str = '';
DescCore = '';
if (StockPhotoURL && StockPhotoURL.length > 1) {
if (DetailsURL && DetailsURL.length > 1) {
str += '<a href="' + DetailsURL + '" target="_blank">';
}
str += '<img class="img-fluid float-right " src="' + StockPhotoURL + '" alt="Gallery Image" style="max-height:100px;max-width:100px;">';
if (DetailsURL && DetailsURL.length > 1) {
str += '</a>';
}
}
str += '<h3>' + catalogTitle + '</h3>';
str += '<table class="table-bordered"><tbody>';
eBayProductId = '';
upc = catalogTitle;
if (ProductID) {
for (i = 0; i < ProductID.length; i++) {
if (ProductID[i].Type == 'Reference') {
str += '<tr><td>' + ProductID[i].Type + '</td><td>' + ProductID[i].Value + '</td></tr>';
munaSearchStr = 'ReferenceID:' + ProductID[i].Value;
eBayProductId = ProductID[i].Value;
} else {
str += '<tr><td>' + ProductID[i].Type + '</td><td>' + ProductID[i].Value + '</td></tr>';
searchStr = ProductID[i].Value;
if (ProductID[i].Type == 'UPC') {
upc = ProductID[i].Value;
}
}
}
}
if (ItemSpecifics) {
for (i = 0; i < ItemSpecifics.NameValueList.length; i++) {
str += '<tr><td>' + ItemSpecifics.NameValueList[i].Name + '</td><td>' + ItemSpecifics.NameValueList[i].Value + '</td></tr>';
if (ItemSpecifics.NameValueList[i].Name == 'Leading Role') {
catalogActorNames = ItemSpecifics.NameValueList[i].Value;
}
}
}
str += '</tbody></table>';
if (MoreResults) {
str += '<p class="float-right bg-danger">' + TotalProducts + ' Products found</p>';
}
if (catalogTitle.includes(movieFormats[0]) || catalogTitle.includes(movieFormats[1]) || catalogTitle.includes(movieFormats[2])) {
str2 += '<a href="https://dvdlist.kazart.com/queryDVDList.php3?search=' + searchStr + '&select=UPC&Submit=Search&since=All&genre=All&date=All&status=All&sort1=title&sort1by=ASC&sort2=year&sort2by=ASC&sort3=genre&sort3by=ASC" target="blank"><button class="btn mx-2"><i class="fa fa-search"></i> Kazart</button></a>';
} else if (catalogTitle.includes('Paperback') || catalogTitle.includes('Hardcover')) {
str2 += '<a href="https://isbnsearch.org/isbn/' + searchStr + '" target="blank"><button class="btn mx-2"><i class="fa fa-search"></i> ISBN Search</button></a>';
}
str2 += '<a href="https://www.amazon.com/s/ref=nb_sb_noss?url=search-alias%3Daps&field-keywords=' + searchStr + '" target="blank"><button class="btn mx-2"><i class="fa fa-search"></i> Amazon</button></a>';
str2 += '<a href="https://dev.munatrading.com/ebay/search.html?keyword=' + (munaSearchStr.length > 0 ? munaSearchStr : catalogTitle.trim().replace(/ /g, "+").substr(0, 98)) + '&listingType=All&hideDuplicateItems=on&locatedIn=WorldWide&sortOrder=PricePlusShippingLowest&results=100" target="blank"><button class="btn mx-2"><i class="fa fa-search"></i> eBay</button></a>';
x = document.getElementById("productinfo");
x.innerHTML = str;
x = document.getElementById("productinfoSearch");
x.innerHTML = str2;
isDuplicate = false;
findDuplicateListing();
findPotentialDuplicateListing();
findShopifyDuplicateListing();
fillForm(ItemSpecifics);
}
function printManualButtons() {
var x = document.getElementById("productinfo");
if (!x.innerHTML.includes('fillManualForm0')) {
x.innerHTML += '<p><br/></p>';
x.innerHTML += '<a href="javascript:void(0)" id="fillManualForm0" class="btn btn-dark btn-xs mx-2 border" onclick="fillManualForm(0)">Book Form</a>';
x.innerHTML += '<a href="javascript:void(0)" id="fillManualForm1" class="btn btn-dark btn-xs mx-2 border" onclick="fillManualForm(1)">CD Form</a>';
x.innerHTML += '<a href="javascript:void(0)" id="fillManualForm2" class="btn btn-dark btn-xs mx-2 border" onclick="fillManualForm(2)">DVD Form</a>';
x.innerHTML += '<a href="javascript:void(0)" id="fillManualForm3" class="btn btn-dark btn-xs mx-2 border" onclick="fillManualForm(3)">Trading Card Form</a>';
x.innerHTML += '<p><br/></p>';
}
}
function setAdditionalImage(imageNumber, imageName) {
if (imageName !== undefined) {
document.getElementById("image" + imageNumber).src = configListingUrl + imageName.trim();
document.getElementById("image" + imageNumber + "anchor").className = document.getElementById("image" + imageNumber + "anchor").className.replace(" invisible", " visible");
document.getElementById("image" + imageNumber + "anchor").href = document.getElementById("image" + imageNumber).src;
}
}
function unsetAdditionalImages() {
for (var i = 0; i < maxAdditionalImages; i++) {
document.getElementById("image" + (i+3)).src = 'images/default-image.png';
document.getElementById("image" + (i+3) + "anchor").className = document.getElementById("image" + (i+3) + "anchor").className.replace(" visible", " invisible");
document.getElementById("image" + (i+3) + "anchor").href = '#';
}
}
function requireNewVerify() {
listButtonHot(false);
}
function requireNewLogin() {
// dummy
}
function hideDetailWindows() {
var x, y;
x = document.getElementById("bookDetails");
x.className = x.className.replace(" w3-show", "");
document.getElementById("bookForm").reset();
x = document.getElementById("cdDetails");
x.className = x.className.replace(" w3-show", "");
document.getElementById("cdForm").reset();
x = document.getElementById("dvdDetails");
x.className = x.className.replace(" w3-show", "");
document.getElementById("dvdForm").reset();
x = document.getElementById("tradingCardDetails");
x.className = x.className.replace(" w3-show", "");
document.getElementById("tradingCardForm").reset();
document.getElementById("cdTracks").innerHTML = "";
document.getElementById("cdUnorderedTrackList").checked = false;
document.getElementById("pasteAmazon").innerHTML = "Paste Amazon Track Listing Here.";
updateTracklistPreview();
for (var imageNumber = 0; imageNumber < maxAdditionalImages; imageNumber++) {
x = document.getElementById("image" + (imageNumber + 3) + "anchor");
y = document.getElementById("image" + (imageNumber + 3));
x.className = x.className.replace(" visible", " invisible");
x.href = '#';
y.src = 'images/default-image.png';
}
}
var url = "";
function findOneBay() {
var n;
var keyword;
if (document.getElementById("list").className.includes("btn-success")) {
alert("Listing verified but not yet submitted");
return;
}
requireNewVerify();
hideDetailWindows();
ImageURLs = [];
if (!document.getElementById("keyword").value) {
return false;
}
if (document.getElementById("keyword").value.endsWith(" Front")) {
n = document.getElementById("keyword").value.lastIndexOf(" Front");
document.getElementById("keyword").value = document.getElementById("keyword").value.substr(0, n);
} else if (document.getElementById("keyword").value.endsWith(" Rear")) {
n = document.getElementById("keyword").value.lastIndexOf(" Rear");
document.getElementById("keyword").value = document.getElementById("keyword").value.substr(0, n);
}
keyword = document.getElementById('keyword').value;
// Clear results outputs button
clearStatusWindows();
document.getElementById("productinfoSearch").innerHTML = "";
document.getElementById("productinfoDuplicate").innerHTML = "";
discogsQty = 1;
// Construct the request
url = configeBayShopping + "?";
url += "callname=FindProducts";
url += "&version=" + configeBayShoppingVersion;
url += "&appid=" + configAppid;
url += "&responseencoding=JSON";
url += "&siteid=0";
url += "&MaxEntries=1";
if (isNumeric(keyword)) {
url += "&ProductID.Type=UPC&ProductID.Value=" + keyword.trim();
} else {
url += "&QueryKeywords=";
url += encodeURIComponent(keyword.trim().replace(/ /g, "+")).substr(0, 98);
}
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
if (this.responseText) {
_cb_FindProducts(JSON.parse(this.responseText));
} else {
findOneBay();
}
}
};
xhttp.open("GET", configProxyUrl, true);
xhttp.setRequestHeader("X-Proxy-Url", encodeURI(url));
xhttp.send();
getPricing();
return false;
}
function fillForm(ItemSpecifics) {
var eBayTitle;
var fieldName;
var field;
var n;
var i;
var j;
var x;
var movieIndex = 0;
var titleField = document.getElementById("title");
eBayTitle = catalogTitle;
if (catalogActorNames.length > 0) {
eBayTitle += ' ' + catalogActorNames.join(', ');
}
document.getElementById("title").value = eBayTitle;
printTitleLength();
if (catalogTitle.includes("(CD")) {
findDiscogsReleases(document.getElementById("keyword").value);
x = document.getElementById("cdDetails");
if (x.className.indexOf("w3-show") == -1) {
x.className += " w3-show";
}
if (!isManualMode) {
titleField.value = reformatCdTitle(catalogTitle);
printTitleLength();
}
if (titleField.value.endsWith(' (Label))')) {
titleField.value = titleField.value.substr(0, titleField.value.indexOf(' (Label))')) + ')';
printTitleLength();
}
if (titleField.value.endsWith(' (USA))')) {
titleField.value = titleField.value.substr(0, titleField.value.indexOf(' (USA))')) + ')';
printTitleLength();
}
document.getElementById("cdCountry").value = configDefaultCountry;
document.getElementById("cdLanguage").value = configDefaultLanguage;
document.getElementById("cdModified").value = 'No';
$('#cdModified').prop('disabled', false).selectpicker('refresh');
document.getElementById("cdModificationDescription").value = '';
if (ItemSpecifics) {
for (i = 0; i < ItemSpecifics.NameValueList.length; i++) {
fieldName = 'cd' + ItemSpecifics.NameValueList[i].Name.replace(/ /g, '');
field = document.getElementById(fieldName);
if (field) {
field.value = ItemSpecifics.NameValueList[i].Value;
}
}
}
$('#cdGenre').prop('disabled', false).selectpicker('refresh');
if (titleField.value.indexOf('EP,') > 0) {
document.getElementById("cdDuration").value = 'EP';
} else if (titleField.value.indexOf('Maxi-Single,') > 0 || titleField.value.indexOf('[Maxi Single]') > 0) {
document.getElementById("cdDuration").value = 'Maxi-Single';
} else if (titleField.value.indexOf('Single,') > 0) {
document.getElementById("cdDuration").value = 'Single';
}
$('#cdDuration').prop('disabled', false).selectpicker('refresh');
if (titleField.value.indexOf('Digipak,') > 0) {
document.getElementById("cdDigipak").checked = true;
setCdConditionDescription('D');
}
if (document.getElementById("cdArtist").value.length < 1) {
if (titleField.value.substr(0, titleField.value.includes('Various Artists'))) {
document.getElementById("cdArtist").value = 'Various';
} else if (document.getElementById("cdArtist").value.length < 1) {
document.getElementById("cdArtist").value = titleField.value.substr(0, titleField.value.indexOf(' - '));
}
}
if (document.getElementById("cdTitle").value.length < 1) {
var s = titleField.value.indexOf(' - ');
if (s == -1) { s = 0; }
var l = titleField.value.indexOf('(CD') - s;
if (s > 0) { s = s + 3; l = l - 3; }
document.getElementById("cdTitle").value = titleField.value.substr(s, l);
}
if (document.getElementById("cdRecordLabel").value.length < 1) {
n = titleField.value.indexOf('(CD');
document.getElementById("cdRecordLabel").value = titleField.value.substr(n).substr(titleField.value.substr(n).lastIndexOf(',') + 2);
document.getElementById("cdRecordLabel").value = document.getElementById("cdRecordLabel").value.substr(0, document.getElementById("cdRecordLabel").value.lastIndexOf(')'));
}
if (document.getElementById("cdReleaseYear").value.length < 1) {
n = titleField.value.indexOf('(CD');
document.getElementById("cdReleaseYear").value = getYear(titleField.value.substr(n));
}
$('#category').selectpicker('val', "176984");
$('#category').selectpicker('refresh');
categoryValues();
$('#cdTracks').on('change input cut paste',updateTracklistPreview);
} else if (catalogTitle.includes(movieFormats[0]) || catalogTitle.includes(movieFormats[1]) || catalogTitle.includes(movieFormats[2])) {
x = document.getElementById("dvdDetails");
if (x.className.indexOf("w3-show") == -1) {
x.className += " w3-show";
}
document.getElementById("dvdCountry").value = configDefaultCountry;
if (ItemSpecifics) {
for (i = 0; i < ItemSpecifics.NameValueList.length; i++) {
fieldName = 'dvd' + ItemSpecifics.NameValueList[i].Name.replace(/ /g, '');
field = document.getElementById(fieldName);
if (field) {
field.value = ItemSpecifics.NameValueList[i].Value;
}
}
}
$('#dvdGenre').prop('disabled', false).selectpicker('refresh');
$('#dvdRating').prop('disabled', false).selectpicker('refresh');
$('#dvdRegionCode').prop('disabled', false).selectpicker('refresh');
$('#dvdRental').prop('disabled', false).selectpicker('refresh');
$('#dvdSeason').prop('disabled', false).selectpicker('refresh');
for (i = 0; i < movieFormats.length; i++) {
if (catalogTitle.includes('(' + movieFormats[i])) {
$('#dvdFormat').selectpicker('val', movieFormats[i]);
movieIndex = i;
} else if (catalogTitle.includes('(HD-DVD')) {
$('#dvdFormat').selectpicker('val', 'HD DVD');
movieIndex = i;
}
}
$('#dvdFormat').prop('disabled', false).selectpicker('refresh');
if (document.getElementById("dvdReleaseYear").value.length < 1) {
n = titleField.value.indexOf('(' + movieFormats[movieIndex]);
document.getElementById("dvdReleaseYear").value = getYear(titleField.value.substr(n));
}
if (document.getElementById("dvdDVDEditionYear").value.length < 1) {
n = titleField.value.indexOf('(' + movieFormats[movieIndex]);
document.getElementById("dvdDVDEditionYear").value = getYear(titleField.value.substr(n));
}
if (document.getElementById("dvdTitle").value.length < 1) {
n = titleField.value.lastIndexOf('(' + movieFormats[movieIndex]);
document.getElementById("dvdTitle").value = titleField.value.substr(0, n);
}
if (titleField.value.indexOf("3D") > 0) {
document.getElementById("dvd3D").checked = true;
}
if (titleField.value.indexOf("Anniversary") > 0) {
document.getElementById("dvdAnniversaryEdition").checked = true;
}
if (titleField.value.indexOf("Collector") > 0) {
document.getElementById("dvdCollectorsEdition").checked = true;
}
if (titleField.value.indexOf("Deluxe") > 0) {
document.getElementById("dvdDeluxeEdition").checked = true;
}
if (titleField.value.indexOf("Director") > 0) {
document.getElementById("dvdDirectorsCut").checked = true;
}
if (titleField.value.indexOf("Extended") > 0) {
document.getElementById("dvdExtendedEdition").checked = true;
}
if (titleField.value.indexOf("Full Screen") > 0 || titleField.value.indexOf("Fullscreen") > 0 ||
titleField.value.indexOf("Full Frame") > 0 || titleField.value.indexOf("Fullframe") > 0) {
document.getElementById("dvdFullScreen").checked = true;
}
if (titleField.value.indexOf("Limited") > 0) {
document.getElementById("dvdLimitedEdition").checked = true;
}
if (titleField.value.indexOf("Promo") > 0) {
document.getElementById("dvdPromo").checked = true;
}
if (titleField.value.indexOf("Signature") > 0) {
document.getElementById("dvdSignatureCollection").checked = true;
}
if (titleField.value.indexOf("Special") > 0) {
document.getElementById("dvdSpecialEdition").checked = true;
}
if (titleField.value.indexOf("Steelbook") > 0) {
document.getElementById("dvdSteelbook").checked = true;
}
if (titleField.value.indexOf("Unrated") > 0) {
document.getElementById("dvdUnratedEdition").checked = true;
}
if (titleField.value.indexOf("Wide Screen") > 0 || titleField.value.indexOf("Widescreen") > 0) {
document.getElementById("dvdWidescreen").checked = true;
}
$('#category').selectpicker('val', "617");
$('#category').selectpicker('refresh');
categoryValues();
} else if (catalogTitle.includes("Paperback") || catalogTitle.includes("Hardcover")) {
x = document.getElementById("bookDetails");
if (x.className.indexOf("w3-show") == -1) {
x.className += " w3-show";
}
document.getElementById("bookLanguage").value = configDefaultLanguage;
document.getElementById("bookCountry").value = configDefaultCountry;
document.getElementById("bookSubject").value = "";
if (ItemSpecifics) {
for (i = 0; i < ItemSpecifics.NameValueList.length; i++) {
fieldName = 'book' + ItemSpecifics.NameValueList[i].Name.replace(/ /g, '');
field = document.getElementById(fieldName);
if (field) {
field.value = ItemSpecifics.NameValueList[i].Value;
}
}
}
$('#bookFormat').prop('disabled', false).selectpicker('refresh');
$('#bookSubject').prop('disabled', false).selectpicker('refresh');
$('#category').selectpicker('val', "171243");
$('#category').selectpicker('refresh');
categoryValues();
} else {
printManualButtons();
}
function toDataURL(url) {
var xhr = new XMLHttpRequest();
xhr.onload = function() {
var reader = new FileReader();
reader.onloadend = function() {
DescImage = reader.result;
};
reader.readAsDataURL(xhr.response);
};
xhr.open('GET', url);
xhr.responseType = 'blob';
xhr.send();
}
toDataURL(configListingUrl + document.getElementById("keyword").value.trim() + configdescriptionImageExtension);
document.getElementById("image1").src = configListingUrl + document.getElementById("keyword").value.trim() + configImage1Extension;
document.getElementById("image2").src = configListingUrl + document.getElementById("keyword").value.trim() + configImage2Extension;
document.getElementById("descriptionImage").src = configListingUrl + document.getElementById("keyword").value.trim() + configdescriptionImageExtension;
document.getElementById("image1anchor").href = document.getElementById("image1").src;
document.getElementById("image2anchor").href = document.getElementById("image2").src;
unsetAdditionalImages();
for (i = 0; i < additionalPictures.length; i++) {
if (additionalPictures[i] !== undefined && additionalPictures[i][0].startsWith(document.getElementById("keyword").value.trim())) {
if (additionalPictures[i].length > maxAdditionalImages) {
document.getElementById("productinfo").innerHTML += '<p class="bg-danger"><strong>Too many additional images.</a></strong></p>';
} else {
for (j = 0; j < additionalPictures[i].length + 4; j++) {
setAdditionalImage(j + 3, additionalPictures[i][j]);
}
}
}
}
}
function getYear(str) {
return str.match(/[12][0-9][0-9][0-9]/);
}
function fillManualForm(type) {
var n;
var x;
hideDetailWindows();
if (document.getElementById("format").value.length <= 1) {
$('#format').selectpicker('val', auctionFormat[type]);
$('#format').selectpicker('refresh');
}
if (type === 0) {
$('#category').selectpicker('val', "171243");
$('#category').selectpicker('refresh');
if (isNumeric(catalogTitle)) {
document.getElementById("bookISBN").value = catalogTitle;
} else {
document.getElementById("bookISBN").value = configDoesNotApply;
}
document.getElementById("bookLanguage").value = configDefaultLanguage;
document.getElementById("bookCountry").value = configDefaultCountry;
categoryValues();
x = document.getElementById("bookDetails");
if (x.className.indexOf("w3-show") == -1) {
x.className += " w3-show";
}
$('#bookFormat').selectpicker('val', "");
$('#bookFormat').prop('disabled', false).selectpicker('refresh');
$('#bookSubject').selectpicker('val', "");
$('#bookSubject').prop('disabled', false).selectpicker('refresh');
} else if (type == 1) {
document.getElementById("category").value = "176984";
$('#category').selectpicker('val', "176984");
$('#category').selectpicker('refresh');
if (isNumeric(catalogTitle)) {
document.getElementById("cdUPC").value = catalogTitle;
} else {
document.getElementById("cdUPC").value = configDoesNotApply;
if ((n = catalogTitle.indexOf(" - ")) > 0) {
if (document.getElementById("cdArtist").value.length < 1) {
document.getElementById("cdArtist").value = catalogTitle.substr(0, n);
}
}
}
document.getElementById("cdCountry").value = configDefaultCountry;
document.getElementById("cdLanguage").value = configDefaultLanguage;
document.getElementById("cdModified").value = 'No';
$('#cdModified').prop('disabled', false).selectpicker('refresh');
document.getElementById("cdModificationDescription").value = '';
categoryValues();
document.getElementById("cdDuration").selectedIndex = 0;
$('#cdDuration').prop('disabled', false).selectpicker('refresh');
$('#cdGenre').selectpicker('val', "");
$('#cdGenre').prop('disabled', false).selectpicker('refresh');
x = document.getElementById("cdDetails");
if (x.className.indexOf("w3-show") == -1) {
x.className += " w3-show";
}
findDiscogsReleases(document.getElementById("keyword").value);
$('#cdTracks').on('change input cut paste',updateTracklistPreview);
} else if (type == 2) {
$('#category').selectpicker('val', "617");
$('#category').selectpicker('refresh');
if (isNumeric(catalogTitle)) {
document.getElementById("dvdUPC").value = catalogTitle;
} else {
document.getElementById("dvdUPC").value = configDoesNotApply;
}
document.getElementById("dvdCountry").value = configDefaultCountry;
categoryValues();
x = document.getElementById("dvdDetails");
if (x.className.indexOf("w3-show") == -1) {
x.className += " w3-show";
}
$('#dvdFormat').selectpicker('val', 'DVD');
$('#dvdGenre').selectpicker('val', "");
$('#dvdRating').selectpicker('val', "");
$('#dvdRegionCode').selectpicker('val', 'DVD: 1 (US, Canada...)');
$('#dvdRental').selectpicker('val', 'No');
$('#dvdSeason').selectpicker('val', "");
$('#dvdFormat').prop('disabled', false).selectpicker('refresh');
$('#dvdGenre').prop('disabled', false).selectpicker('refresh');
$('#dvdRating').prop('disabled', false).selectpicker('refresh');
$('#dvdRegionCode').prop('disabled', false).selectpicker('refresh');
$('#dvdRental').prop('disabled', false).selectpicker('refresh');
$('#dvdSeason').prop('disabled', false).selectpicker('refresh');
} else if (type == 3) {
catalogTitle = document.getElementById("keyword").value.trim();
splitTradingCardElements();
}
fillForm();
}
function resetForm() {
var i;
document.getElementById("searchForm").reset();
document.getElementById("listForm").reset();
document.getElementById("productinfo").innerHTML = "<p>Product Info</p>";
initConfig();
clearStatusWindows();
for (i = 1; i <= 7; i++) {
document.getElementById("image" + i).src = "";
}
document.getElementById("descriptionImage").src = "";
hideDetailWindows();
}
function verifyListingImage() {
if (eBayAuthTokenFlag === false) {
return;
}
if (isDuplicate) {
window.alert("This is a duplicate.");
return;
}
var x = document.getElementById("results");
x.innerHTML = '';
if (x.className.indexOf("w3-show") == -1) {
x.className += " w3-show";
}
if (ImageURLs.length === 0) {
uploadSiteHostedPictures();
} else {
verifyListing();
}
}
function verifyListing() {
var i;
var authErrorFlag = false;
var xw = new XMLWriter('UTF-8', '1.0');
var xhr = new XMLHttpRequest();
if (!createAddXML(xw, xhr, 'VerifyAddItemRequest', 'VerifyAddItem', false)) {
return;
}
xml = xw.flush();
xw.close();
xhr.onload = function() {
var jsonObj = XMLparse(xhr.responseXML, false);
var obj = jsonObj.VerifyAddItemResponse;
var returnCode = obj.Ack;
var x = document.getElementById("results");
var str = "";
if (returnCode == 'Success' ||
(returnCode == 'Warning' && (obj.Errors.ErrorCode == '21920270' || obj.Errors.ErrorCode == '21920204' || obj.Errors.ErrorCode == '21917108' || obj.Errors.ErrorCode == '21920205' || obj.Errors.ErrorCode == '21917164' || obj.Errors.ErrorCode == '21920208'))) {
listButtonHot(true);
str += '<div class="alert ' + (returnCode == 'Success' ? "alert-success" : "alert-warning" ) + ' alert-dismissible">';
str += '<button type="button" class="close" data-dismiss="alert">×</button>';
str += '<p><strong>' + returnCode + ':</strong></p>';
if (returnCode == 'Warning') {
str += "<p>" + obj.Errors.SeverityCode + " (" + obj.Errors.ErrorCode + "): " + escapeHtml(obj.Errors.LongMessage) + "</p>";
}
var fees = getJsonArray(obj.Fees.Fee);
str += "<ul>";
for (i = 0; i < fees.length; i++) {
if (fees[i].Fee.text !== "0.0") {
str += '<li>' + fees[i].Name + ": $" + Number(fees[i].Fee.text).toFixed(2) + "</li>";
}
}
if (obj.DiscountReason) {
str += "<li>Discount Reason: " + obj.DiscountReason + "</li>";
}
str += "</ul>";
str += '</div>';
var recommendations = getJsonArray(obj.ListingRecommendations.Recommendation);
for (i = 0; i < recommendations.length; i++) {
str += '<div class="alert alert-info alert-dismissible">';
str += '<button type="button" class="close" data-dismiss="alert">×</button>';
str += decode(recommendations[i]);
str += '</div>';
}
x.innerHTML += str;
} else {
requireNewVerify();
str += '<div class="alert alert-danger alert-dismissible">';
str += '<button type="button" class="close" data-dismiss="alert">×</button>';
str += '<p><strong>' + returnCode + ':</strong></p>';
var errors = getJsonArray(obj.Errors);
str += "<ul>";
for (i = 0; i < errors.length; i++) {
str += '<li>' + errors[i].SeverityCode + " (" + errors[i].ErrorCode + "): " + escapeHtml(errors[i].LongMessage) + "</li>";
if (errors[i].LongMessage.includes('Auth')) {
authErrorFlag = true;
}
}
str += "</ul>";
if (obj.DuplicateInvocationDetails) {
str += '<p>Duplicate Invocation Id ' + obj.DuplicateInvocationDetails.DuplicateInvocationID + ' Tracking Id' + obj.DuplicateInvocationDetails.InvocationTrackingID + ' Status ' + obj.DuplicateInvocationDetails.Status + '</p>';
}
str += "</div>";
x.innerHTML += str;
if (authErrorFlag === true) {
eBayAuthTokenFlag = false;
x = document.getElementById("login");
if (x.className.indexOf("w3-show") == -1) {
x.className += " w3-show";
}
}
}
if (obj.Message) {
str += '<div class="alert alert-info alert-dismissible">';
str += '<button type="button" class="close" data-dismiss="alert">×</button>';
str += '<p>' + obj.Message + '</p>';
str += '</div>';
x.innerHTML += str;
}
};
xhr.send(xml);
}
function decode(recommendation) {
var str = "<p>";
var i;
str += recommendation.Code + " (" + recommendation.Type + "/" + recommendation.Group + ") for '" + recommendation.FieldName;
if (recommendation.Value) {
str += "': " + recommendation.Value;
}
if (recommendation.Message) {
str += "<br/>" + recommendation.Message;
}
var metadata = recommendation.Metadata;
if (metadata) {
if (metadata.length > 0) {
for (i = 0; i < metadata.length; i++) {
if (metadata[i].Name != "correlationId" &&
metadata[i].Name != "currency" &&
metadata[i].Name != "similarItems") {
str += "<br/>" + metadata[i].Name + " = " + metadata[i].Value;
}
}
} else {
if (metadata.Name != "correlationId" &&
metadata.Name != "currency" &&
metadata.Name != "similarItems") {
str += "<br/>" + metadata.Name + " = " + metadata.Value;
}
}
}
str += "</p>";
return str;
}
function submitListing(saveFlag) {
var i;
var authErrorFlag = false;
if (document.getElementById("list").className.indexOf("btn-success") == -1) {
return;
}
var xw = new XMLWriter('UTF-8', '1.0');
var xhr = new XMLHttpRequest();
createAddXML(xw, xhr, 'AddItemRequest', 'AddItem', saveFlag);
xml = xw.flush();
xw.close();
xhr.onload = function() {
var jsonObj = XMLparse(xhr.responseXML, false);
var obj = jsonObj.AddItemResponse;
var str = '';
var returnCode = obj.Ack;
var x = document.getElementById("results");
if (x.className.indexOf("w3-show") == -1) {
x.className += " w3-show";
}
if (returnCode == 'Success' ||
(returnCode == 'Warning' && (obj.Errors.ErrorCode == '21920270' || obj.Errors.ErrorCode == '21920204' || obj.Errors.ErrorCode == '21917108' || obj.Errors.ErrorCode == '21920205' || obj.Errors.ErrorCode == '21917164' || obj.Errors.ErrorCode == '21920208'))) {
listButtonHot(false);
moveImages();
ImageURLs = [];
document.getElementById("title").value = "";
printTitleLength();
deleteSubmittedEntry();
str += '<div class="alert ' + (returnCode == 'Success' ? "alert-success" : "alert-warning" ) + ' alert-dismissible">';
str += '<button type="button" class="close" data-dismiss="alert">×</button>';
str += '<p><strong>' + returnCode + '</strong>, Item Id <a href="https://www.ebay.com/itm/' + obj.ItemID + '" target="_blank">' + obj.ItemID + '</a></p>';
if (returnCode == 'Warning') {
str += "<p>" + obj.Errors.SeverityCode + " (" + obj.Errors.ErrorCode + "): " + escapeHtml(obj.Errors.LongMessage) + "</p>";
}
var fees = getJsonArray(obj.Fees.Fee);
str += "<ul>";
for (i = 0; i < fees.length; i++) {
if (fees[i].Fee.text !== "0.0") {
str += '<li>' + fees[i].Name + ": $" + Number(fees[i].Fee.text).toFixed(2) + "</li>";
}
}
if (obj.DiscountReason) {
str += "<li>Discount Reason: " + obj.DiscountReason + "</li>";
}
str += '</ul>';
str += '</div>';
x.innerHTML = str;
} else {
requireNewVerify();
str += '<div class="alert alert-danger alert-dismissible">';
str += '<button type="button" class="close" data-dismiss="alert">×</button>';
str += '<p><strong>' + returnCode + ':</strong></p>';
var errors = getJsonArray(obj.Errors);
str += "<ul>";
for (i = 0; i < errors.length; i++) {
str += '<li>' + errors[i].SeverityCode + " (" + errors[i].ErrorCode + "): " + escapeHtml(errors[i].LongMessage) + "</li>";
if (errors[i].LongMessage.includes('Auth')) {
authErrorFlag = true;
}
}
str += "</ul>";
if (obj.DuplicateInvocationDetails) {
str += '<p>Duplicate Invocation Id ' + obj.DuplicateInvocationDetails.DuplicateInvocationID + ' Tracking Id' + obj.DuplicateInvocationDetails.InvocationTrackingID + ' Status ' + obj.DuplicateInvocationDetails.Status + '</p>';
}
str += "</div>";
x.innerHTML = str;
if (authErrorFlag === true) {
eBayAuthTokenFlag = false;
x = document.getElementById("login");
if (x.className.indexOf("w3-show") == -1) {
x.className += " w3-show";
}
}
}
unsetAdditionalImages();
};
if (saveFlag) {
var sPos = xml.indexOf('<Item>');
var ePos = xml.indexOf('</Item>');
var textToSave = xml.substr(sPos, ePos - sPos + 7);
var textToSaveAsBlob = new Blob([String(textToSave)], {
type: "text/xml"
});
var textToSaveAsURL = window.URL.createObjectURL(textToSaveAsBlob);
var fileNameToSaveAs = document.getElementById('keyword').value + ".xml";
var str = '';
var downloadLink = document.createElement("a");
downloadLink.download = fileNameToSaveAs;
downloadLink.innerHTML = "Download File";
downloadLink.href = textToSaveAsURL;
downloadLink.onclick = destroyClickedElement;
downloadLink.style.display = "none";
document.body.appendChild(downloadLink);
str += '<div class="alert alert-success alert-dismissible">';
str += '<button type="button" class="close" data-dismiss="alert">×</button>';
str += '<p><strong>XML Saved</strong>, Filename ' + fileNameToSaveAs;
str += '</div>';
document.getElementById("results").innerHTML = str;
downloadLink.click();
listButtonHot(false);
moveImages();
ImageURLs = [];
unsetAdditionalImages();
deleteSubmittedEntry();
} else {
xhr.send(xml);
}
}
function moveImages() {
var i, j;
var item = document.getElementById("keyword").value.trim();
var images = [];
images.push(item + configImage1Extension);
images.push(item + configImage2Extension);
images.push(item + configdescriptionImageExtension);
for (i = 0; i < additionalPictures.length; i++) {
if (additionalPictures[i] !== undefined && additionalPictures[i][0].startsWith(item)) {
for (j = 0; j < additionalPictures[i].length; j++) {
images.push(additionalPictures[i][j]);
}
}
}
for (i = 0; i < additionalPicturesToMove.length; i++) {
if (additionalPicturesToMove[i] !== undefined && additionalPicturesToMove[i][0].startsWith(item)) {
for (j = 0; j < additionalPicturesToMove[i].length; j++) {
images.push(additionalPicturesToMove[i][j]);
}
}
}
for (i=0; i < images.length; i++) {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
// bugbug
if (this.readyState == 4 && this.status == 200) {
} else if (this.readyState == 4 && this.status == 400) {
}
};
xhttp.open("GET", "moveImage.php?filename=" + images[i], true);
xhttp.send();
}
}
function destroyClickedElement(event) {
document.body.removeChild(event.target);
}
function deleteSubmittedEntry() {
var x = document.getElementById("keyword");
x.remove(x.selectedIndex);
x.selectedIndex = -1;
$("#keyword").selectpicker('refresh');
}
function createAddXML(xw, xhr, xmlrequest, callname, saveFlag) {
var errorText = "";
var ShippingProfileName;
var ShippingProfileId;
var si, opt;
var weightInOz;
if (picturesAreLoaded === false) {
errorText += "<li>Images not yet uploaded!</li>";
}
if (document.getElementById("format").value <= 1) {
errorText += "<li>Select Auction Format!</li>";
}
if (document.getElementById("sku").value == 'Batch X') {
errorText += "<li>Wrong Batch Number!</li>";
}
if (document.getElementById("category").value == '0') {
errorText += "<li>Wrong Category!</li>";
}
if (document.getElementById("sku").value.length < 1) {
errorText += "<li>Batch Number Empty!</li>";
}
if (document.getElementById("condition").value === "") {
errorText += "<li>Condition Description Empty!</li>";
}
if (document.getElementById("quantity").value === "") {
errorText += "<li>Quantity Empty!</li>";
}
if (document.getElementById("price").value === "") {
errorText += "<li>Price Empty!</li>";
}
if (document.getElementById("title").value === "") {
errorText += "<li>Title Empty!</li>";
}
if (errorText.length > 0) {
var str = '';
var x = document.getElementById("results");
str += '<div class="alert alert-danger alert-dismissible">';
str += '<button type="button" class="close" data-dismiss="alert">×</button>';
str += '<h2>Form Errors</h2><ul>' + errorText + '</ul>';
str += '</div>';
x.innerHTML += str;
if (x.className.indexOf("w3-show") == -1) {
x.className += " w3-show";
}
return;
}
xw.writeStartDocument();
xw.writeStartElement(xmlrequest);
xw.writeAttributeString('xmlns', 'urn:ebay:apis:eBLBaseComponents');
xw.writeStartElement('RequesterCredentials');
xw.writeElementString('eBayAuthToken', eBayAuthToken);
xw.writeEndElement(); /* RequesterCredentials */
xw.writeStartElement('Item');
if (CC == 3 || saveFlag) {
xw.writeElementString('UUID', document.getElementById('keyword').value.hashCode().pad(32));
}
xw.writeElementString('Site', 'US');
xw.writeElementString('Country', 'US');
xw.writeElementString('PostalCode', configZip);
xw.writeElementString('Currency', 'USD');
xw.writeElementString('HitCounter', 'HiddenStyle');
var format = document.getElementById('format').value;
xw.writeElementString('ListingType', format);
if (format == 'Chinese') {
xw.writeElementString('ListingDuration', 'Days_7');
} else if (format == 'FixedPriceItem') {
xw.writeElementString('ListingDuration', 'GTC');
}
xw.writeStartElement('PrimaryCategory');
xw.writeElementString('CategoryID', category);
xw.writeEndElement(); /* PrimaryCategory */
if (document.getElementById("category").value != '29223') {
xw.writeElementString('ConditionID', document.getElementById('conditionId').value);
}
if (document.getElementById('conditionId').value != '1000') {
xw.writeElementString('ConditionDescription', escapeXml(document.getElementById('condition').value));
}
xw.writeStartElement('StartPrice');
xw.writeAttributeString('currencyID', 'USD');
xw.writeString(document.getElementById('price').value);
xw.writeEndElement(); /* StartPrice */
xw.writeElementString('PayPalEmailAddress', configLinkedPayPal);
// Not necessary for eBay managed payments
// xw.writeElementString('PaymentMethods', 'PayPal');
xw.writeElementString('Quantity', document.getElementById('quantity').value);
xw.writeElementString('Title', escapeXml(document.getElementById('title').value));
if (!isManualMode) {
xw.writeElementString('SKU', escapeXml(document.getElementById('sku').value));
} else {
if (isNumeric(document.getElementById('keyword').value.trim())) {
xw.writeElementString('SKU', escapeXml(document.getElementById('sku').value + ' - ' + ProductListingDetailsNameList[CC] + ' ' + document.getElementById('keyword').value.trim()));
} else {
xw.writeElementString('SKU', escapeXml(document.getElementById('sku').value));
}
}
xw.writeStartElement('SellerProfiles');
xw.writeStartElement('SellerPaymentProfile');
xw.writeElementString('PaymentProfileID', '187930424023');
xw.writeElementString('PaymentProfileName', 'eBay Managed Payments');
xw.writeEndElement(); /* SellerPaymentProfile */
xw.writeStartElement('SellerReturnProfile');
xw.writeElementString('ReturnProfileID', '123043332023');
xw.writeElementString('ReturnProfileName', 'Returns Accepted,Buyer,30 Days,Money Back');
xw.writeEndElement(); /* SellerReturnProfile */
xw.writeStartElement('SellerShippingProfile');
ShippingProfileId = ShippingProfileIdList[CC];
ShippingProfileName = ShippingProfileNameList[CC];
if (CC == 1) {
if (document.getElementById('title').value.includes('Discs') || discogsQty > 1) {
ShippingProfileId = ShippingProfileIdList[2];
ShippingProfileName = ShippingProfileNameList[2];
}
}
xw.writeElementString('ShippingProfileID', ShippingProfileId);
xw.writeElementString('ShippingProfileName', ShippingProfileName);
xw.writeEndElement(); /* SellerShippingProfile */
xw.writeEndElement(); /* SellerProfiles */
if (CC == 1) {
weightInOz = 4;
if (discogsQty > 0) {
weightInOz = discogsQty * 4;
}
if (document.getElementById('title').value.includes('Discs')) {
var pos = document.getElementById('title').value.indexOf('Discs');
var discNo = Number(document.getElementById('title').value.substr(pos - 2, 1));
if (discNo > 1) {
weightInOz = discNo * 4;
}
}
xw.writeStartElement('ShippingPackageDetails');
xw.writeElementString('ShippingPackage', 'PackageThickEnvelope');
xw.writeElementString('ShippingIrregular', 'false');
xw.writeElementString('MeasurementUnit', 'English');
xw.writeElementString('WeightMajor', '0');
xw.writeElementString('WeightMinor', weightInOz.toString());
xw.writeEndElement(); /* ShippingPackageDetails> */
} else if (CC == 2) {
xw.writeStartElement('ShippingPackageDetails');
xw.writeElementString('ShippingPackage', 'PackageThickEnvelope');
xw.writeElementString('ShippingIrregular', 'false');
xw.writeElementString('MeasurementUnit', 'English');
xw.writeElementString('WeightMajor', '0');
xw.writeElementString('WeightMinor', '6');
xw.writeEndElement(); /* ShippingPackageDetails> */
} else if (CC == 3) {
xw.writeStartElement('ShippingPackageDetails');
xw.writeElementString('ShippingPackage', 'Letter');
xw.writeElementString('ShippingIrregular', 'false');
xw.writeElementString('MeasurementUnit', 'English');
xw.writeElementString('WeightMajor', '0');
xw.writeElementString('WeightMinor', '1');
xw.writeEndElement(); /* ShippingPackageDetails> */
}
xw.writeStartElement('ProductListingDetails');
if (CC == 3) {
xw.writeElementString(ProductListingDetailsNameList[CC], configDoesNotApply);
} else {
si = document.getElementById("keyword").selectedIndex;
opt = document.getElementById("keyword").options;
if (!isManualMode) {
if (eBayProductId.length > 0) {
xw.writeElementString('ProductReferenceID', eBayProductId);
} else {
if (isNumeric(document.getElementById('keyword').value.trim())) {
if (opt[si].style.color != 'red') {
xw.writeElementString(ProductListingDetailsNameList[CC], document.getElementById('keyword').value.trim());
} else {
xw.writeElementString(ProductListingDetailsNameList[CC], configDoesNotApply);
}
} else {
xw.writeElementString(ProductListingDetailsNameList[CC], configDoesNotApply);
}
}
} else {
if (opt[si].style.color == 'red') {
xw.writeElementString(ProductListingDetailsNameList[CC], configDoesNotApply);
} else if (CC === 0) {
xw.writeElementString(ProductListingDetailsNameList[CC], document.getElementById('bookISBN').value.trim());
} else if (CC == 1) {
xw.writeElementString(ProductListingDetailsNameList[CC], document.getElementById('cdUPC').value.trim());
} else if (CC == 2) {
xw.writeElementString(ProductListingDetailsNameList[CC], document.getElementById('dvdUPC').value.trim());
}
}
}
xw.writeEndElement(); /* ProductListingDetails */
xw.writeStartElement('Storefront');
if (CC != 3) {
xw.writeElementString('StoreCategoryID', StoreCategoryList[CC]);
} else {
if (category == "666") {
xw.writeElementString('StoreCategoryID', "30431905018");
} else if (category == "213") {
xw.writeElementString('StoreCategoryID', "30431901018");
} else if (category == "214") {
xw.writeElementString('StoreCategoryID', "30431902018");
} else if (category == "215") {
xw.writeElementString('StoreCategoryID', "30431903018");
} else if (category == "216") {
xw.writeElementString('StoreCategoryID', "30431904018");
} else {
xw.writeElementString('StoreCategoryID', "");
}
}
xw.writeEndElement(); /* Storefront */
xw.writeStartElement('PictureDetails');
for (var imageNumber = 0; imageNumber < ImageURLs.length; imageNumber++) {
xw.writeElementString('PictureURL', ImageURLs[imageNumber]);
}
xw.writeEndElement(); /* PictureDetails */
// Use Tax Table
// xw.writeStartElement('ShippingDetails');
// xw.writeStartElement('SalesTax');
// xw.writeElementString('SalesTaxPercent', configTaxRate);
// xw.writeElementString('SalesTaxState', configTaxStateId);
// xw.writeElementString('ShippingIncludedInTax', 'false');
// xw.writeEndElement(); /* SalesTax */
// xw.writeEndElement(); /* ShippingDetails */
xw.writeElementString('UseTaxTable', 'true');
if (document.getElementById('bestoffer').checked) {
var autoAcceptPrice = Math.floor(Number(document.getElementById('price').value) * configAutoAcceptPrice);
var minBestOfferPrice = Math.floor(Number(document.getElementById('price').value) * configMinBestOfferPrice);
xw.writeStartElement('BestOfferDetails');
xw.writeElementString('BestOfferEnabled', 'true');
xw.writeEndElement(); /* BestOfferDetails */
xw.writeStartElement('ListingDetails');
xw.writeStartElement('BestOfferAutoAcceptPrice');
xw.writeAttributeString('currencyID', 'USD');
xw.writeString(autoAcceptPrice.toFixed(2));
xw.writeEndElement(); /* BestOfferAutoAcceptPrice */
xw.writeStartElement('MinimumBestOfferPrice');
xw.writeAttributeString('currencyID', 'USD');
xw.writeString(minBestOfferPrice.toFixed(2));
xw.writeEndElement(); /* MinimumBestOfferPrice */
xw.writeEndElement(); /* ListingDetails */
}
var Desc = Description1;
Desc += '<h3>' + document.getElementById('title').value + '</h3>';
generateDescCore();
Desc += DescCore;
if (document.getElementById('conditionId').value != '1000') {
Desc += '<p>' + document.getElementById('condition').value + '</p>';
}
Desc += Description2;
Desc += document.getElementById('title').value.replace(/['"]+/g, '');
Desc += Description2a;
Desc += DescImage;
Desc += Description3;
if (CC !== 3) {
Desc += DescriptionFreeShipping;
} else {
Desc += DescriptionTradingCardShipping;
}
Desc += Description4;
xw.writeElementString('Description', escapeXml(Desc));
if (callname.includes('Verify') && configGetRecommendations === true) {
xw.writeElementString('IncludeRecommendations', 'true');
}
generateItemSpecifics(xw);
xw.writeEndElement(); /* Item */
xw.writeElementString('ErrorLanguage', 'en_US');
xw.writeElementString('Version', configeBayTradingVersion);
xw.writeElementString('WarningLevel', configWarningLevel);
xw.writeEndElement(); /* xmlrequest */
xw.writeEndDocument();
xhr.open('POST', configProxyUrl, true);
xhr.setRequestHeader('Content-Type', 'text/xml');
xhr.setRequestHeader('X-EBAY-API-APP-NAME', configAppid);
xhr.setRequestHeader('X-EBAY-API-COMPATIBILITY-LEVEL', configeBayTradingVersion);
xhr.setRequestHeader('X-EBAY-API-CALL-NAME', callname);
xhr.setRequestHeader('X-EBAY-API-SITEID', '0');
xhr.setRequestHeader('X-EBAY-API-DEV-NAME', '');
xhr.setRequestHeader('X-EBAY-API-CERT-NAME', '');
xhr.setRequestHeader('X-Proxy-URL', configServiceEndpoint);
return true;
}
function categoryValues() {
category = document.getElementById("category").value;
if (category == 182882 || category == 171228 || category == 171243 || category == 2228 || category == 268) {
/* Books */
CC = 0;
conditionDescriptionButtons(0);
} else if (category == 176984 || category == 29792) {
/* CDs */
CC = 1;
conditionDescriptionButtons(1);
} else if (category == 617) {
/* DVDs */
CC = 2;
conditionDescriptionButtons(0);
} else if (category == 666 || category == 213 || category == 214 || category == 133072 || category == 215 || category == 4240 || category == 216 || category == 183444) {
/* Trading Cards */
CC = 3;
conditionDescriptionButtons(0);
} else {
conditionDescriptionButtons(0);
return;
}
if (document.getElementById("format").value.length < 1) {
$('#format').selectpicker('val', auctionFormat[CC]);
$('#format').selectpicker('refresh');
}
if (document.getElementById("price").value.length < 4) {
document.getElementById("price").value = MinPriceList[CC];
}
document.getElementById("condition").value = ConditionDescriptionList[CC];
$('#conditionId').selectpicker('val', ConditionIdList[CC]);
$('#conditionId').selectpicker('refresh');
document.getElementById("quantity").value = 1;
document.getElementById("bestoffer").checked = false;
}
function conditionDescriptionButtons(flag) {
var x = [];
x[0] = document.getElementById("CdConditionDescriptionSingular");
x[0].className = x[0].className.replace("btn-dark", "btn-info");
x[1] = document.getElementById("CdConditionDescriptionPlural");
x[1].className = x[1].className.replace("btn-info", "btn-dark");
x[2] = document.getElementById("CdConditionDescriptionDigipak");
x[2].className = x[2].className.replace("btn-info", "btn-dark");
x[3] = document.getElementById("CdConditionDescriptionNewCase");
x[3].className = x[3].className.replace("btn-info", "btn-dark");
for (var i = 0; i < x.length; i++) {
if (flag) {
if (x[i].className.indexOf("w3-show-inline-block") == -1) {
x[i].className += " w3-show-inline-block";
}
} else {
x[i].className = x[i].className.replace(" w3-show-inline-block", "");
}
}
}
function setCdConditionDescription(flag) {
var x = [];
x[0] = document.getElementById("CdConditionDescriptionSingular");
x[1] = document.getElementById("CdConditionDescriptionPlural");
x[2] = document.getElementById("CdConditionDescriptionDigipak");
x[3] = document.getElementById("CdConditionDescriptionNewCase");
x[0].className = x[0].className.replace("btn-info", "btn-dark");
x[1].className = x[1].className.replace("btn-info", "btn-dark");
x[2].className = x[2].className.replace("btn-info", "btn-dark");
x[3].className = x[3].className.replace("btn-info", "btn-dark");
if (flag == 'S') {
document.getElementById("condition").value = ConditionDescriptionList[1];
x[0].className = x[0].className.replace("btn-dark", "btn-info");
} else if (flag == 'P') {
document.getElementById("condition").value = ConditionDescriptionCdPlural;
x[1].className = x[1].className.replace("btn-dark", "btn-info");
discogsQty = 2;
} else if (flag == 'D') {
document.getElementById("condition").value = ConditionDescriptionCdDigipak;
document.getElementById("cdDigipak").checked = true;
x[2].className = x[2].className.replace("btn-dark", "btn-info");
} else if (flag == 'N') {
document.getElementById("condition").value = ConditionDescriptionCdNewCase;
x[3].className = x[3].className.replace("btn-dark", "btn-info");
}
}
var minActive = [0.0, 0.0, 0.0];
var maxActive = [0.0, 0.0, 0.0];
var avgActive = [0.0, 0.0, 0.0];
var noActive = [0, 0, 0];
var minSold = [0.0, 0.0, 0.0];
var maxSold = [0.0, 0.0, 0.0];
var avgSold = [0.0, 0.0, 0.0];
var noSold = [0, 0, 0];
var minUnsold = [0.0, 0.0, 0.0];
var maxUnsold = [0.0, 0.0, 0.0];
var avgUnsold = [0.0, 0.0, 0.0];
var noUnsold = [0, 0, 0];
var maxPricingPages = [-1, -1];
var totalPricingEntries = [0, 0];
var newActiveBreakdown = [];
var usedActiveBreakdown = [];
var newSoldBreakdown = [];
var usedSoldBreakdown = [];
var maxPriceByNumber = [0.0, 0.0];
var listingNumberPercentage = 0.25;
function getPricing() {
minActive = [0.0, 0.0, 0.0];
maxActive = [0.0, 0.0, 0.0];
avgActive = [0.0, 0.0, 0.0];
noActive = [0, 0, 0];
minSold = [0.0, 0.0, 0.0];
maxSold = [0.0, 0.0, 0.0];
avgSold = [0.0, 0.0, 0.0];
noSold = [0, 0, 0];
minUnsold = [0.0, 0.0, 0.0];
maxUnsold = [0.0, 0.0, 0.0];
avgUnsold = [0.0, 0.0, 0.0];
noUnsold = [0, 0, 0];
maxPricingPages = [-1, -1];
totalPricingEntries = [0, 0];
newActiveBreakdown = [];
usedActiveBreakdown = [];
newSoldBreakdown = [];
usedSoldBreakdown = [];
getPricingData(0);
getPricingData(1);
}
function getPricingData(searchIndex) {
var index = 0;
var keyword;
keyword = document.getElementById('keyword').value;
// Construct the request
var url = configeBayFinding + "?";
if (searchIndex === 0) {
url += "OPERATION-NAME=findItemsAdvanced";
} else {
url += "OPERATION-NAME=findCompletedItems";
}
url += "&SECURITY-APPNAME=" + configAppid;
url += "&GLOBAL-ID=EBAY-US";
url += "&RESPONSE-DATA-FORMAT=JSON";
url += "&SERVICE-VERSION=" + configeBayFindingVersion;
url += "&REST-PAYLOAD";
url += "&keywords=";
url += encodeURIComponent(keyword.trim().replace(/ /g, "+"));
url += "&paginationInput.entriesPerPage=100";
url += "&paginationInput.pageNumber=";
url += (index + 1);
url += "&buyerPostalCode=";
url += configZip;
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
if (searchIndex === 0) {
_cb_PriceActiveItems(JSON.parse(this.responseText));
} else {
_cb_PriceCompletedItems(JSON.parse(this.responseText));
}
}
};
xhttp.open("GET", configProxyUrl, true);
xhttp.setRequestHeader("X-Proxy-Url", encodeURI(url));
xhttp.send();
function waitForMaxPricingPages(i) {
if (maxPricingPages[i] < 0) {
window.setTimeout(waitForMaxPricingPages, 500, i); // wait 500 milliseconds
} else {
for (index = 1; index < maxPricingPages[searchIndex]; index++) {
// Construct the request
var url = configeBayFinding + "?";
if (searchIndex === 0) {
url += "OPERATION-NAME=findItemsAdvanced";
} else {
url += "OPERATION-NAME=findCompletedItems";
}
url += "&SECURITY-APPNAME=" + configAppid;
url += "&GLOBAL-ID=EBAY-US";
url += "&RESPONSE-DATA-FORMAT=JSON";
url += "&SERVICE-VERSION=" + configeBayFindingVersion;
url += "&REST-PAYLOAD";
url += "&keywords=";
url += encodeURIComponent(keyword.trim().replace(/ /g, "+"));
url += "&paginationInput.entriesPerPage=100";
url += "&paginationInput.pageNumber=";
url += (index + 1);
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
if (searchIndex === 0) {
_cb_PriceActiveItems(JSON.parse(this.responseText));
} else {
_cb_PriceCompletedItems(JSON.parse(this.responseText));
}
}
};
xhttp.open("GET", configProxyUrl, true);
xhttp.setRequestHeader("X-Proxy-Url", encodeURI(url));
xhttp.send();
}
}
}
waitForMaxPricingPages(searchIndex);
}
function _cb_PriceActiveItems(objArray) {
var array = typeof objArray.findItemsAdvancedResponse[0] != 'object' ? JSON.parse(objArray.findItemsAdvancedResponse[0]) : objArray.findItemsAdvancedResponse[0].searchResult[0].item;
totalPricingEntries[0] = Number(objArray.findItemsAdvancedResponse[0].paginationOutput[0].totalEntries);
if (totalPricingEntries[0] > 0) {
priceItem(array, 0);
}
}
function _cb_PriceCompletedItems(objArray) {
var array = typeof objArray.findCompletedItemsResponse[0] != 'object' ? JSON.parse(objArray.findCompletedItemsResponse[0]) : objArray.findCompletedItemsResponse[0].searchResult[0].item;
totalPricingEntries[1] = Number(objArray.findCompletedItemsResponse[0].paginationOutput[0].totalEntries);
if (totalPricingEntries[1] > 0) {
priceItem(array, 1);
}
}
function priceItem(array, index) {
var i;
var Title;
var shippingCost = 0.0;
var itemCost = 0.0;
var totalCost = 0.0;
var totalCostInt = 0;
var sellingStatus;
var sellingState;
var bidCount;
var condInd;
var condition;
var conditionId;
var shippingInfo;
var shippingServiceCost;
var convertedCurrentPrice;
var listingInfo;
var convertedBuyItNowPrice;
var JsonObj;
if (array === undefined) {
return;
}
if (totalPricingEntries[index] < 1) {
maxPricingPages[index] = 0;
} else {
maxPricingPages[index] = (totalPricingEntries[index] / 100) > 100 ? 100 : Math.trunc(totalPricingEntries[index] / 100.0) + 1;
}
for (i = 0; i < array.length; i++) {
JsonObj = array[i];
Title = JsonObj.title[0].toLowerCase();
if (Title.includes("disc only") > 0 ||
Title.includes("disk only") > 0 ||
Title.includes("only disc") > 0 ||
Title.includes("only disk") > 0 ||
Title.search(/dis[ck].*only/) > 0) {
continue; // exclude "disc only listing
}
condition = JsonObj.condition;
if (condition) {
conditionId = condition[0].conditionId;
if (conditionId == 1000 || conditionId == 1500 || conditionId == 2750) {
condInd = 1;
} else if (conditionId <= 4000) {
condInd = 2;
} else {
continue; // Only 'Very Good' and better
}
} else {
condInd = 2;
}
shippingInfo = JsonObj.shippingInfo;
shippingServiceCost = shippingInfo[0].shippingServiceCost;
if (shippingServiceCost) {
shippingCost = Number(shippingServiceCost[0].__value__);
} else {
shippingCost = 0.0;
}
sellingStatus = JsonObj.sellingStatus;
sellingState = sellingStatus[0].sellingState;
bidCount = sellingStatus[0].bidCount;
convertedCurrentPrice = sellingStatus[0].convertedCurrentPrice;
itemCost = Number(convertedCurrentPrice[0].__value__);
listingInfo = JsonObj.listingInfo;
convertedBuyItNowPrice = listingInfo[0].convertedBuyItNowPrice;
if (bidCount === 0 && convertedBuyItNowPrice) {
itemCost = Number(convertedBuyItNowPrice[0].__value__);
}
if (condition) {
conditionId = condition[0].conditionId;
if (conditionId == 1000 || conditionId == 1500 || conditionId == 2750) {
condInd = 1;
} else {
condInd = 2;
}
} else {
condInd = 2;
}
totalCost = itemCost + shippingCost;
totalCostInt = Math.ceil(totalCost);
if (sellingState == "Active") {
if (totalCost < minActive[0] || !minActive[0]) {
minActive[0] = totalCost;
}
if (totalCost > maxActive[0]) {
maxActive[0] = totalCost;
}
avgActive[0] += totalCost;
++noActive[0];
if (totalCost < minActive[condInd] || !minActive[condInd]) {
minActive[condInd] = totalCost;
}
if (totalCost > maxActive[condInd]) {
maxActive[condInd] = totalCost;
}
avgActive[condInd] += totalCost;
++noActive[condInd];
if (condInd == 1) {
if (newActiveBreakdown[totalCostInt] === undefined) {
newActiveBreakdown[totalCostInt] = 0;
}
++newActiveBreakdown[totalCostInt];
} else {
if (usedActiveBreakdown[totalCostInt] === undefined) {
usedActiveBreakdown[totalCostInt] = 0;
}
++usedActiveBreakdown[totalCostInt];
}
} else if (sellingState == "EndedWithSales") {
if (totalCost < minSold[0] || !minSold[0]) {
minSold[0] = totalCost;
}
if (totalCost > maxSold[0]) {
maxSold[0] = totalCost;
}
avgSold[0] += totalCost;
++noSold[0];
if (totalCost < minSold[condInd] || !minSold[condInd]) {
minSold[condInd] = totalCost;
}
if (totalCost > maxSold[condInd]) {
maxSold[condInd] = totalCost;
}
avgSold[condInd] += totalCost;
++noSold[condInd];
if (condInd == 1) {
if (newSoldBreakdown[totalCostInt] === undefined) {
newSoldBreakdown[totalCostInt] = 0;
}
++newSoldBreakdown[totalCostInt];
} else {
if (usedSoldBreakdown[totalCostInt] === undefined) {
usedSoldBreakdown[totalCostInt] = 0;
}
++usedSoldBreakdown[totalCostInt];
}
} else /* Unsold */ {
if (totalCost < minUnsold[0] || !minUnsold[0]) {
minUnsold[0] = totalCost;
}
if (totalCost > maxUnsold[0]) {
maxUnsold[0] = totalCost;
}
avgUnsold[0] += totalCost;
++noUnsold[0];
if (totalCost < minUnsold[condInd] || !minUnsold[condInd]) {
minUnsold[condInd] = totalCost;
}
if (totalCost > maxUnsold[condInd]) {
maxUnsold[condInd] = totalCost;
}
avgUnsold[condInd] += totalCost;
++noUnsold[condInd];
}
}
var x = document.getElementById("prices");
if (x.className.indexOf("w3-show") == -1) {
x.className += " w3-show";
}
var str = '<h3>Pricing Information (Shipping included)</h3>';
str += '<table class="table table-striped table-bordered table-hover">';
str += ' <thead class="thead-dark">';
str += ' <tr>';
str += ' <th></th>';
str += ' <th>Number</th>';
str += ' <th>Minimum</th>';
str += ' <th>Maximum</th>';
str += ' <th>Average</th>';
str += ' </tr>';
str += ' </thead>';
str += ' <tbody>';
str += ' <tr>';
str += ' <td>Active</td>';
str += ' <td>' + noActive[0] + '<br/>' + noActive[1] + ' / ' + noActive[2] + '</td>';
str += ' <td>$' + Number(minActive[0]).toFixed(2) + '<br/>$' + Number(minActive[1]).toFixed(2) + ' / $' + Number(minActive[2]).toFixed(2) + '</td>';
str += ' <td>$' + Number(maxActive[0]).toFixed(2) + '<br/>$' + Number(maxActive[1]).toFixed(2) + ' / $' + Number(maxActive[2]).toFixed(2) + '</td>';
str += ' <td>';
if (noActive[0]) {
str += '$' + Number(avgActive[0] / noActive[0]).toFixed(2);
str += '<br/>$' + (noActive[1] > 0 ? Number(avgActive[1] / noActive[1]).toFixed(2) : 0.00);
str += ' / $' + (noActive[2] > 0 ? Number(avgActive[2] / noActive[2]).toFixed(2) : 0.00);
}
str += '</td>';
str += ' </tr>';
str += '<tr><td colspan="5">';
str += '<canvas id="activeChart" width="640" height="320" style="border:1px solid #000000;"></canvas>';
str += '</td></tr>';
str += ' <tr>';
str += ' <td>Sold</td>';
str += ' <td>' + noSold[0] + '<br/>' + noSold[1] + ' / ' + noSold[2] + '</td>';
str += ' <td>$' + Number(minSold[0]).toFixed(2) + '<br/>$' + Number(minSold[1]).toFixed(2) + ' / $' + Number(minSold[2]).toFixed(2) + '</td>';
str += ' <td>$' + Number(maxSold[0]).toFixed(2) + '<br/>$' + Number(maxSold[1]).toFixed(2) + ' / $' + Number(maxSold[2]).toFixed(2) + '</td>';
str += ' <td>';
if (noSold[0]) {
str += '$' + Number(avgSold[0] / noSold[0]).toFixed(2);
str += '<br/>$' + (noSold[1] > 0 ? Number(avgSold[1] / noSold[1]).toFixed(2) : 0.00);
str += ' / $' + (noSold[2] > 0 ? Number(avgSold[2] / noSold[2]).toFixed(2) : 0.00);
}
str += '</td>';
str += ' </tr>';
str += '<tr><td colspan="5">';
str += '<canvas id="soldChart" width="640" height="320" style="border:1px solid #000000;"></canvas>';
str += '</td></tr>';
str += ' <tr>';
str += ' <td>Unsold</td>';
str += ' <td>' + noUnsold[0] + '<br/>' + noUnsold[1] + ' / ' + noUnsold[2] + '</td>';
str += ' <td>$' + Number(minUnsold[0]).toFixed(2) + '<br/>$' + Number(minUnsold[1]).toFixed(2) + ' / $' + Number(minUnsold[2]).toFixed(2) + '</td>';
str += ' <td>$' + Number(maxUnsold[0]).toFixed(2) + '<br/>$' + Number(maxUnsold[1]).toFixed(2) + ' / $' + Number(maxUnsold[2]).toFixed(2) + '</td>';
str += ' <td>';
if (noUnsold[0]) {
str += '$' + Number(avgUnsold[0] / noUnsold[0]).toFixed(2);
str += '<br/>$' + (noUnsold[1] > 0 ? Number(avgUnsold[1] / noUnsold[1]).toFixed(2) : 0.00);
str += ' / $' + (noUnsold[2] > 0 ? Number(avgUnsold[2] / noUnsold[2]).toFixed(2) : 0.00);
}
str += '</td>';
str += ' </tr>';
str += ' </tbody>';
str += '</table>';
x.innerHTML = str;
pricingGraphs(0, usedActiveBreakdown, newActiveBreakdown);
pricingGraphs(1, usedSoldBreakdown, newSoldBreakdown);
}
function pricingGraphs(index, usedBreakdown, newBreakdown) {
var i;
var myChart;
var newData = [];
var usedData = [];
var labelData = [];
var ctx = document.getElementById(index === 0 ? 'activeChart' : 'soldChart').getContext('2d');
var min = findMin(usedBreakdown, newBreakdown);
var max = findMax(usedBreakdown, newBreakdown);
for (i = min; i < max; i++) {
labelData.push('<$' + i);
if (usedBreakdown[i] === undefined) {
usedData.push(0);
} else {
usedData.push(usedBreakdown[i]);
}
if (newBreakdown[i] === undefined) {
newData.push(0);
} else {
newData.push(newBreakdown[i]);
}
}
myChart = new Chart(ctx, {
type: 'bar',
options: {
responsive: false,
maintainAspectRatio: false,
scales: {
yAxes: [{
ticks: {
fixedStepSize: 1
}
}],
},
},
data: {
labels: labelData,
datasets: [{
label: 'Used',
data: usedData,
backgroundColor: "rgba(0,102,0,1)"
}, {
label: 'New',
data: newData,
backgroundColor: "rgba(204,0,0,1)"
}]
}
});
}
function findMin(Used, New) {
var i;
var minUsed = 0,
minNew = 0;
var min = 0;
for (i = 0; i < Used.length; i++) {
if (Used[i] !== undefined) {
minUsed = i;
break;
}
}
for (i = 0; i < New.length; i++) {
if (New[i] !== undefined) {
minNew = i;
break;
}
}
if (minUsed > 0 && minNew > 0) {
min = Math.min(minUsed, minNew);
} else if (minUsed > 0) {
min = minUsed;
} else if (minNew > 0) {
min = minNew;
}
return min;
}
function findMax(Used, New) {
var max = 0;
if (Used.length >= New.length) {
max = Used.length;
} else if (New.length >= Used.length) {
max = New.length;
}
return max;
}
function listButtonHot(flag) {
var i;
var x = [];
x[0] = document.getElementById("list");
x[1] = document.getElementById("savexml");
for (i = 0; i < 2; i++) {
if (flag === true) {
x[i].className = x[i].className.replace(" btn-danger", " btn-success");
} else {
x[i].className = x[i].className.replace(" btn-success", " btn-danger");
}
}
}
function clearStatusWindows() {
var x = document.getElementById("results");
x.innerHTML = "";
x.className = x.className.replace(" w3-show", "");
x = document.getElementById("prices");
x.innerHTML = "";
x.className = x.className.replace(" w3-show", "");
x = document.getElementById("discogsReleases");
x.innerHTML = "";
x.className = x.className.replace(" w3-show", "");
}
function pictureLoad(flag) {
picturesAreLoaded = flag;
}
function reformatCdTitle(str) {
if (str.includes("Various Artists")) {
return str;
}
var n = str.lastIndexOf(" by ");
if (n > 0) {
var title = str.substr(0, n);
var rest = str.substr(n + 4);
n = rest.indexOf("(");
var artist = rest.substr(0, n).trim();
var info = rest.substr(n);
return (artist + " - " + title + " " + info);
}
return str;
}
function extractFromTitle() {
var titleField = document.getElementById("title");
var n, s, l;
titleField.value = titleField.value.trim().replace(/[\u2012\u2013\u2014\u2015]/, '-').replace(/\u200E/, '').replace(/ +/g, ' ');
printTitleLength();
if (CC == 1) {
if (titleField.value.indexOf(', EP,') > 0) {
$('#cdDuration').selectpicker('val', 'EP');
} else if (titleField.value.indexOf(', Maxi-Single,') > 0 || titleField.value.indexOf('[Maxi Single]') > 0) {
$('#cdDuration').selectpicker('val', 'Maxi-Single');
} else if (titleField.value.indexOf(', Single,') > 0) {
$('#cdDuration').selectpicker('val', 'Single');
}
$('#cdDuration').prop('disabled', false).selectpicker('refresh');
if (titleField.value.indexOf(', Digipak,') > 0) {
document.getElementById("cdDigipak").checked = true;
setCdConditionDescription('D');
} else {
document.getElementById("cdDigipak").checked = false;
setCdConditionDescription('S');
}
if (titleField.value.includes('Various Artists')) {
document.getElementById("cdArtist").value = 'Various';
} else if (document.getElementById("cdArtist").value.length < 1) {
document.getElementById("cdArtist").value = titleField.value.substr(0, titleField.value.indexOf(" - "));
}
n = titleField.value.indexOf('(CD');
if (document.getElementById("cdRecordLabel").value.length < 1) {
document.getElementById("cdRecordLabel").value = titleField.value.substr(n).substr(titleField.value.substr(n).lastIndexOf(',') + 2);
document.getElementById("cdRecordLabel").value = document.getElementById("cdRecordLabel").value.substr(0, document.getElementById("cdRecordLabel").value.lastIndexOf(')'));
}
if (document.getElementById("cdTitle").value.length < 1) {
var s = titleField.value.indexOf(' - ');
if (s == -1) { s = 0; }
var l = titleField.value.indexOf('(CD') - s;
if (s > 0) { s = s + 3; l = l - 3; }
document.getElementById("cdTitle").value = titleField.value.substr(s, l);
}
document.getElementById("cdReleaseYear").value = getYear(titleField.value.substr(n));
}
}
function reformatPastedTitle(e) {
var clipboardData, pastedData;
var x = document.getElementById("title");
// Stop data actually being pasted
e.stopPropagation();
e.preventDefault();
// Get pasted data via clipboard API
clipboardData = e.clipboardData || window.clipboardData;
pastedData = clipboardData.getData('Text');
x.value = pastedData.trim().replace(/[\u2012\u2013\u2014\u2015]/, '-').replace(/\u200E/, '');
printTitleLength();
}
function formatTrackList() {
var i;
var lines = [];
var x = document.getElementById("cdTracks");
if (x.value.length < 1) {
return;
}
lines = x.value.split('\n');
for (i = 0; i < lines.length; i++) {
lines[i] = lines[i].trim();
lines[i] = lines[i].replace(/^\d+ /, '');
lines[i] = lines[i].replace(/^\d+. /, '');
lines[i] = lines[i].replace(/^\t/g, '');
lines[i] = lines[i].replace(/\t(\d+[:.]\d{2})$/, "\[$1\]");
lines[i] = lines[i].replace(/^\u0096/, '');
lines[i] = lines[i].replace(/ \t/, ' - ');
lines[i] = lines[i].replace(/[\u2012\u2013\u2014\u2015]/, '');
lines[i] = lines[i].replace(/@/g, '*');
lines[i] = lines[i].replace(/\*/g, '');
}
x.value = lines.join('\n');
updateTracklistPreview();
}
function pasteAmazon(e) {
setTimeout(function(){
var lines = document.getElementsByClassName("TitleLink");
var text = [];
for (var i = 0; i < lines.length; i++) {
text[i] = lines[i].innerHTML;
}
document.getElementById("cdTracks").innerHTML = text.join('\n');
updateTracklistPreview();
document.getElementById("pasteAmazon").innerHTML = "Paste Amazon Track Listing Here.";
}, 4);
}
function splitTradingCardElements() {
// [Year] [First Last], [Position] at [Club] - [Card Manufacturer] [Series] -P-[Card Number] [Rookie] [S####] [other]
var elem;
var stop1 = 0,
stop2 = 0,
stop3 = 0;
var str;
var title;
var cardYear = '';
var cardPlayer = '';
var cardPosition = '';
var cardTeam = '';
var cardManufacturer = '';
var cardSeries = '';
var cardNumber = '';
var isRookie = false;
var isSerialized = false;
var isPoA = false;
title = document.getElementById('keyword').value.replace('-P-', '#');
catalogTitle = title;
var res = title.split(' ');
for (elem = 0; elem < res.length; elem++) {
if (res[elem].endsWith(',')) {
stop1 = elem;
}
if (res[elem] == '-') {
stop2 = elem - 1;
}
if (res[elem].startsWith('#')) {
stop3 = elem;
}
}
if (!stop1 || !stop2 || !stop3) {
return;
}
cardYear = res[0];
for (elem = 1; elem <= stop1; elem++) {
cardPlayer += res[elem] + ' ';
}
cardPlayer = cardPlayer.substr(0, cardPlayer.length - 2);
cardPosition = res[elem];
elem += 2;
for (; elem <= stop2; elem++) {
cardTeam += res[elem] + ' ';
}
cardTeam = cardTeam.trim();
elem++;
cardManufacturer = res[elem];
if (cardManufacturer == "UpperDeck") {
catalogTitle = catalogTitle.replace("UpperDeck", "Upper Deck");
cardManufacturer = "Upper Deck";
} else if (cardManufacturer == "AceAuthentic") {
catalogTitle = catalogTitle.replace("AceAuthentic", "Ace Authentic");
cardManufacturer = "Ace Authentic";
} else if (cardManufacturer == "BeAPlayer") {
catalogTitle = catalogTitle.replace("BeAPlayer", "Be A Player");
cardManufacturer = "Be A Player";
} else if (cardManufacturer == "CollectorsEdge") {
catalogTitle = catalogTitle.replace("CollectorsEdge", "Collector's Edge");
cardManufacturer = "Collector's Edge";
} else if (cardManufacturer == "GoalLine") {
catalogTitle = catalogTitle.replace("GoalLine", "Goal Line");
cardManufacturer = "Goal Line";
} else if (cardManufacturer == "InTheGame") {
catalogTitle = catalogTitle.replace("InTheGame", "In the Game");
cardManufacturer = "In the Game";
} else if (cardManufacturer == "OnyxAuthenticated") {
catalogTitle = catalogTitle.replace("OnyxAuthenticated", "Onyx Authenticated");
cardManufacturer = "Onyx Authenticated";
} else if (cardManufacturer == "PressPass") {
catalogTitle = catalogTitle.replace("PressPass", "Press Pass");
cardManufacturer = "Press Pass";
} else if (cardManufacturer == "ProSet") {
catalogTitle = catalogTitle.replace("ProSet", "Pro Set");
cardManufacturer = "Pro Set";
}
elem++;
for (; elem < stop3; elem++) {
cardSeries += res[elem] + ' ';
}
cardSeries = cardSeries.trim();
cardNumber = res[elem];
elem++;
for (; elem < res.length; elem++) {
if (res[elem] == "Gameworn") {
isPoA = true;
}
if (res[elem] == "Rookie") {
isRookie = true;
}
if (res[elem].startsWith("S") && isNumeric(res[elem].substr(1))) {
catalogTitle = catalogTitle.replace(res[elem], "/" + res[elem].substr(1));
isSerialized = true;
}
}
str = '<h3>' + title + '</h3>';
str += '<p>';
str += 'Season: ' + cardYear + '<br/>';
str += 'Player: ' + cardPlayer + '<br/>';
str += 'Position: ' + cardPosition + '<br/>';
str += 'Team: ' + cardTeam + '<br/>';
str += 'Card Manufacturer: ' + cardManufacturer + '<br/>';
if (cardSeries.length > 0) {
str += 'Card Series: ' + cardSeries + '<br/>';
}
str += 'Card Number: ' + cardNumber + '<br/>';
if (isRookie) {
str += 'Rookie<br/>';
}
if (isSerialized) {
str += 'Serialized<br/>';
}
if (isPoA) {
str += 'Piece of Authentic<br/>';
}
str += '</p>';
var x = document.getElementById("productinfo");
x.innerHTML = str;
document.getElementById("tcPlayer").value = cardPlayer;
document.getElementById("tcPosition").value = cardPosition;
document.getElementById("tcTeam").value = cardTeam;
document.getElementById("tcSeason").value = cardYear;
document.getElementById("tcManufacturer").value = cardManufacturer;
document.getElementById("tcNumber").value = cardNumber;
document.getElementById("tcSeries").value = cardSeries;
document.getElementById("tcRookie").checked = false;
document.getElementById("tcPoA").checked = false;
document.getElementById("tcSerial").checked = false;
if (isRookie) {
document.getElementById("tcRookie").checked = true;
}
if (isPoA) {
document.getElementById("tcPoA").checked = true;
}
if (isSerialized) {
document.getElementById("tcSerial").checked = true;
}
var currentCategory = document.getElementById("category").value;
if (currentCategory != "213" && currentCategory != "214" && currentCategory != "215" && currentCategory != "216") {
$('#category').selectpicker('val', "");
$('#category').selectpicker('refresh');
}
x = document.getElementById("tradingCardDetails");
if (x.className.indexOf("w3-show") == -1) {
x.className += " w3-show";
}
}
function generateDescCore() {
DescCore = '';
if (CC === 0) {
DescCore = '<p>';
DescCore += 'Format: ' + document.getElementById("bookFormat").value + '<br/>';
if (document.getElementById("bookAuthor").value.length > 0) {
DescCore += 'Author: ' + document.getElementById("bookAuthor").value.toString().replace(/,/g, ', ') + '<br/>';
}
if (document.getElementById("bookPublicationYear").value.length > 0) {
DescCore += 'Publication Year: ' + document.getElementById("bookPublicationYear").value + '<br/>';
}
if (document.getElementById("bookSubject").value.length > 0) {
DescCore += 'Subject: ' + document.getElementById("bookSubject").value + '<br/>';
}
if (document.getElementById("bookLanguage").value.length > 0) {
DescCore += 'Language: ' + document.getElementById("bookLanguage").value + '<br/>';
}
if (document.getElementById("bookCountry").value.length > 0) {
DescCore += 'Country: ' + document.getElementById("bookCountry").value + '<br/>';
}
if (document.getElementById("bookDustJacket").checked) {
DescCore += 'Dust Jacket<br/>';
}
if (document.getElementById("bookIllustrated").checked) {
DescCore += 'Illustrated<br/>';
}
if (document.getElementById("bookLargePrint").checked) {
DescCore += 'Large Print<br/>';
}
if (document.getElementById("bookSigned").checked) {
DescCore += 'Signed<br/>';
}
DescCore += '</p>';
} else if (CC == 1) {
DescCore = generateTracklist();
} else if (CC == 2) {
DescCore = '<p>';
DescCore += 'Format: ' + document.getElementById("dvdFormat").value + '<br/>';
if (document.getElementById("dvdActor").value.length > 0) {
DescCore += 'Actors: ' + document.getElementById("dvdActor").value.toString().replace(/,/g, ', ') + '<br/>';
}
if (document.getElementById("dvdLeadingRole").value.length > 0) {
DescCore += 'Leading Role: ' + document.getElementById("dvdLeadingRole").value.toString().replace(/,/g, ', ') + '<br/>';
}
if (document.getElementById("dvdDirector").value.length > 0) {
DescCore += 'Director: ' + document.getElementById("dvdDirector").value.toString().replace(/,/g, ', ') + '<br/>';
}
if (document.getElementById("dvdDVDEditionYear").value.length > 0) {
DescCore += 'DVD Edition Year: ' + document.getElementById("dvdDVDEditionYear").value + '<br/>';
}
if (document.getElementById("dvdReleaseYear").value.length > 0) {
DescCore += 'Movie Release Year: ' + document.getElementById("dvdReleaseYear").value + '<br/>';
}
if (document.getElementById("dvdGenre").value.length > 1) {
DescCore += 'Genre: ' + document.getElementById("dvdGenre").value + '<br/>';
}
if (document.getElementById("dvdRating").value.length > 1) {
DescCore += 'Rating: ' + document.getElementById("dvdRating").value + '<br/>';
}
if (document.getElementById("dvdRegionCode").value.length > 1) {
DescCore += 'Region Code: ' + document.getElementById("dvdRegionCode").value + '<br/>';
}
if (document.getElementById("dvdSeason").value.length > 0 && document.getElementById("dvdSeason").value != ' ') {
DescCore += 'Season: ' + document.getElementById("dvdSeason").value + '<br/>';
}
if (document.getElementById("dvdCountry").value.length > 0) {
DescCore += 'Country/Region of Manufacture: ' + document.getElementById("dvdCountry").value + '<br/>';
}
if (document.getElementById("dvd3D").checked) {
DescCore += '3D<br/>';
}
if (document.getElementById("dvdAnniversaryEdition").checked) {
DescCore += 'Anniversary Edition<br/>';
}
if (document.getElementById("dvdBoxSet").checked) {
DescCore += 'Box Set<br/>';
}
if (document.getElementById("dvdCollectorsEdition").checked) {
DescCore += 'Collector\'s Edition<br/>';
}
if (document.getElementById("dvdDeluxeEdition").checked) {
DescCore += 'Deluxe Edition<br/>';
}
if (document.getElementById("dvdDirectorsCut").checked) {
DescCore += 'Director\'s Cut<br/>';
}
if (document.getElementById("dvdExtendedEdition").checked) {
DescCore += 'Extended Edition<br/>';
}
if (document.getElementById("dvdFullScreen").checked) {
DescCore += 'Full Screen<br/>';
}
if (document.getElementById("dvdLimitedEdition").checked) {
DescCore += 'Limited Edition<br/>';
}
if (document.getElementById("dvdPromo").checked) {
DescCore += 'Promo<br/>';
}
if (document.getElementById("dvdSignatureCollection").checked) {
DescCore += 'Signature Collection<br/>';
}
if (document.getElementById("dvdSpecialEdition").checked) {
DescCore += 'Special Edition<br/>';
}
if (document.getElementById("dvdSteelbook").checked) {
DescCore += 'Steelbook<br/>';
}
if (document.getElementById("dvdUnratedEdition").checked) {
DescCore += 'Unrated Edition<br/>';
}
if (document.getElementById("dvdWidescreen").checked) {
DescCore += 'Widescreen<br/>';
}
DescCore += '</p>';
} else if (CC == 3) {
DescCore = '<p>';
DescCore += 'Season: ' + document.getElementById("tcSeason").value + '<br/>';
DescCore += 'Player: ' + document.getElementById("tcPlayer").value + '<br/>';
DescCore += 'Position: ' + document.getElementById("tcPosition").value + '<br/>';
DescCore += 'Team: ' + document.getElementById("tcTeam").value + '<br/>';
DescCore += 'Card Manufacturer: ' + document.getElementById("tcManufacturer").value + '<br/>';
if (document.getElementById("tcSeries").value.length > 0) {
DescCore += 'Card Series: ' + document.getElementById("tcSeries").value + '<br/>';
}
DescCore += 'Card Number: ' + document.getElementById("tcNumber").value + '<br/>';
if (document.getElementById("tcRookie").checked) {
DescCore += 'Rookie<br/>';
}
if (document.getElementById("tcSerial").checked) {
DescCore += 'Serialized<br/>';
}
if (document.getElementById("tcPoA").checked) {
DescCore += 'Piece of Authentic<br/>';
}
DescCore += '</p>';
}
}
function generateTracklist() {
var str = '';
var listType = 'ol';
if (document.getElementById("cdTracks").value.length > 0) {
if (document.getElementById("cdUnorderedTrackList").checked) {
listType = 'ul';
}
str += '<p>Tracklist:</p><' + listType + ' class="w3-' + listType + '">';
var lines = document.getElementById("cdTracks").value.split('\n');
for (var i = 0; i < lines.length; i++) {
str += '<li>' + lines[i] + '</li>';
}
str += '</' + listType + '>';
}
return (str);
}
function updateTracklistPreview() {
document.getElementById("tracklistPreview").innerHTML = generateTracklist();
}
function generateItemSpecifics(xw) {
xw.writeStartElement('ItemSpecifics');
if (CC === 0) {
xw.writeStartElement('NameValueList');
xw.writeElementString('Name', 'Author');
xw.writeElementString('Value', escapeXml(document.getElementById("bookAuthor").value));
xw.writeEndElement(); /* NameValueList */
xw.writeStartElement('NameValueList');
xw.writeElementString('Name', 'Format');
xw.writeElementString('Value', escapeXml(document.getElementById("bookFormat").value));
xw.writeEndElement(); /* NameValueList */
xw.writeStartElement('NameValueList');
xw.writeElementString('Name', 'Publication Year');
xw.writeElementString('Value', escapeXml(document.getElementById("bookPublicationYear").value));
xw.writeEndElement(); /* NameValueList */
xw.writeStartElement('NameValueList');
xw.writeElementString('Name', 'Subject');
xw.writeElementString('Value', escapeXml(document.getElementById("bookSubject").value));
xw.writeEndElement(); /* NameValueList */
xw.writeStartElement('NameValueList');
xw.writeElementString('Name', 'Language');
xw.writeElementString('Value', escapeXml(document.getElementById("bookLanguage").value));
xw.writeEndElement(); /* NameValueList */
xw.writeStartElement('NameValueList');
xw.writeElementString('Name', 'Country/Region of Manufacture');
xw.writeElementString('Value', escapeXml(document.getElementById("bookCountry").value));
xw.writeEndElement(); /* NameValueList */
if (document.getElementById("bookDustJacket").checked ||
document.getElementById("bookIllustrated").checked ||
document.getElementById("bookLargePrint").checked ||
document.getElementById("bookSigned").checked) {
xw.writeStartElement('NameValueList');
xw.writeElementString('Name', 'Special Attributes');
itemSpecificCheckbox(xw, "bookDustJacket", 'Dust Jacket');
itemSpecificCheckbox(xw, "bookIllustrated", 'Illustrated');
itemSpecificCheckbox(xw, "bookLargePrint", 'Large Print');
itemSpecificCheckbox(xw, "bookSigned", 'Signed');
xw.writeEndElement(); /* NameValueList */
}
} else if (CC == 1) {
var modifiedItem = escapeXml(document.getElementById("cdModified").value);
xw.writeStartElement('NameValueList');
xw.writeElementString('Name', 'Genre');
xw.writeElementString('Value', escapeXml(document.getElementById("cdGenre").value));
xw.writeEndElement(); /* NameValueList */
xw.writeStartElement('NameValueList');
xw.writeElementString('Name', 'Duration');
xw.writeElementString('Value', escapeXml(document.getElementById("cdDuration").value));
xw.writeEndElement(); /* NameValueList */
xw.writeStartElement('NameValueList');
xw.writeElementString('Name', 'Record Label');
xw.writeElementString('Value', escapeXml(document.getElementById("cdRecordLabel").value));
xw.writeEndElement(); /* NameValueList */
xw.writeStartElement('NameValueList');
xw.writeElementString('Name', 'Release Year');
xw.writeElementString('Value', escapeXml(document.getElementById("cdReleaseYear").value));
xw.writeEndElement(); /* NameValueList */
xw.writeStartElement('NameValueList');
xw.writeElementString('Name', 'Artist');
xw.writeElementString('Value', escapeXml(document.getElementById("cdArtist").value));
xw.writeEndElement(); /* NameValueList */
xw.writeStartElement('NameValueList');
xw.writeElementString('Name', 'Title');
xw.writeElementString('Value', escapeXml(document.getElementById("cdTitle").value));
xw.writeEndElement(); /* NameValueList */
xw.writeStartElement('NameValueList');
xw.writeElementString('Name', 'Country/Region of Manufacture');
xw.writeElementString('Value', escapeXml(document.getElementById("cdCountry").value));
xw.writeEndElement(); /* NameValueList */
xw.writeStartElement('NameValueList');
xw.writeElementString('Name', 'Custom Bundle');
xw.writeElementString('Value', 'No');
xw.writeEndElement(); /* NameValueList */
xw.writeStartElement('NameValueList');
xw.writeElementString('Name', 'Language');
xw.writeElementString('Value', escapeXml(document.getElementById("cdLanguage").value));
xw.writeEndElement(); /* NameValueList */
xw.writeStartElement('NameValueList');
xw.writeElementString('Name', 'Modified Item');
xw.writeElementString('Value', modifiedItem);
xw.writeEndElement(); /* NameValueList */
if (modifiedItem == 'Yes') {
xw.writeStartElement('NameValueList');
xw.writeElementString('Name', 'Modification Description');
xw.writeElementString('Value', escapeXml(document.getElementById("cdModificationDescription").value));
xw.writeEndElement(); /* NameValueList */
}
if (document.getElementById("cdCompilation").checked ||
document.getElementById("cdDigipak").checked ||
document.getElementById("cdDualDisc").checked ||
document.getElementById("cdEnhanced").checked ||
document.getElementById("cdImport").checked ||
document.getElementById("cdHDCD").checked) {
xw.writeStartElement('NameValueList');
xw.writeElementString('Name', 'Special Attributes');
itemSpecificCheckbox(xw, "cdCompilation", 'Compilation');
itemSpecificCheckbox(xw, "cdDigipak", 'Digipak');
itemSpecificCheckbox(xw, "cdDualDisc", 'DualDisc');
itemSpecificCheckbox(xw, "cdEnhanced", 'Enhanced');
itemSpecificCheckbox(xw, "cdImport", 'Import');
itemSpecificCheckbox(xw, "cdHDCD", 'HDCD');
xw.writeEndElement(); /* NameValueList */
}
if (document.getElementById("cdLiveRecording").checked ||
document.getElementById("cdPromo").checked ||
document.getElementById("cdReissue").checked ||
document.getElementById("cdRemastered").checked ||
document.getElementById("cdClub").checked ||
document.getElementById("cdGreatestHits").checked) {
xw.writeStartElement('NameValueList');
xw.writeElementString('Name', 'Edition');
itemSpecificCheckbox(xw, "cdLiveRecording", 'Live Recording');
itemSpecificCheckbox(xw, "cdPromo", 'Promo');
itemSpecificCheckbox(xw, "cdReissue", 'Reissue');
itemSpecificCheckbox(xw, "cdRemastered", 'Remastered');
itemSpecificCheckbox(xw, "cdClub", 'Club Edition');
itemSpecificCheckbox(xw, "cdGreatestHits", 'Greatest Hits');
xw.writeEndElement(); /* NameValueList */
}
} else if (CC == 2) {
xw.writeStartElement('NameValueList');
xw.writeElementString('Name', 'Format');
xw.writeElementString('Value', escapeXml(document.getElementById("dvdFormat").value));
xw.writeEndElement(); /* NameValueList */
xw.writeStartElement('NameValueList');
xw.writeElementString('Name', 'Movie/TV Title');
xw.writeElementString('Value', escapeXml(document.getElementById("dvdTitle").value));
xw.writeEndElement(); /* NameValueList */
xw.writeStartElement('NameValueList');
xw.writeElementString('Name', 'Actor');
xw.writeElementString('Value', escapeXml(document.getElementById("dvdActor").value));
xw.writeEndElement(); /* NameValueList */
xw.writeStartElement('NameValueList');
xw.writeElementString('Name', 'Leading Role');
xw.writeElementString('Value', escapeXml(document.getElementById("dvdLeadingRole").value));
xw.writeEndElement(); /* NameValueList */
xw.writeStartElement('NameValueList');
xw.writeElementString('Name', 'Release Year');
xw.writeElementString('Value', escapeXml(document.getElementById("dvdReleaseYear").value));
xw.writeEndElement(); /* NameValueList */
xw.writeStartElement('NameValueList');
xw.writeElementString('Name', 'DVD Edition Year');
xw.writeElementString('Value', escapeXml(document.getElementById("dvdDVDEditionYear").value));
xw.writeEndElement(); /* NameValueList */
xw.writeStartElement('NameValueList');
xw.writeElementString('Name', 'Director');
xw.writeElementString('Value', escapeXml(document.getElementById("dvdDirector").value));
xw.writeEndElement(); /* NameValueList */
xw.writeStartElement('NameValueList');
xw.writeElementString('Name', 'Genre');
xw.writeElementString('Value', escapeXml(document.getElementById("dvdGenre").value));
xw.writeEndElement(); /* NameValueList */
xw.writeStartElement('NameValueList');
xw.writeElementString('Name', 'Rating');
xw.writeElementString('Value', escapeXml(document.getElementById("dvdRating").value));
xw.writeEndElement(); /* NameValueList */
xw.writeStartElement('NameValueList');
xw.writeElementString('Name', 'Region Code');
xw.writeElementString('Value', escapeXml(document.getElementById("dvdRegionCode").value));
xw.writeEndElement(); /* NameValueList */
if (document.getElementById("dvd3D").checked ||
document.getElementById("dvdAnniversaryEdition").checked ||
document.getElementById("dvdBoxSet").checked ||
document.getElementById("dvdCollectorsEdition").checked ||
document.getElementById("dvdDeluxeEdition").checked ||
document.getElementById("dvdDirectorsCut").checked ||
document.getElementById("dvdExtendedEdition").checked ||
document.getElementById("dvdFullScreen").checked ||
document.getElementById("dvdLimitedEdition").checked ||
document.getElementById("dvdPromo").checked ||
document.getElementById("dvdSignatureCollection").checked ||
document.getElementById("dvdSpecialEdition").checked ||
document.getElementById("dvdSteelbook").checked ||
document.getElementById("dvdUnratedEdition").checked ||
document.getElementById("dvdWidescreen").checked) {
xw.writeStartElement('NameValueList');
xw.writeElementString('Name', 'Edition');
itemSpecificCheckbox(xw, "dvd3D", '3D');
itemSpecificCheckbox(xw, "dvdAnniversaryEdition", 'Anniversary Edition');
itemSpecificCheckbox(xw, "dvdBoxSet", 'Box Set');
itemSpecificCheckbox(xw, "dvdCollectorsEdition", 'Collector's Edition');
itemSpecificCheckbox(xw, "dvdDeluxeEdition", 'Deluxe Edition');
itemSpecificCheckbox(xw, "dvdDirectorsCut", 'Director's Cut');
itemSpecificCheckbox(xw, "dvdExtendedEdition", 'Extended Edition');
itemSpecificCheckbox(xw, "dvdFullScreen", 'Full Screen');
itemSpecificCheckbox(xw, "dvdLimitedEdition", 'Limited Edition');
itemSpecificCheckbox(xw, "dvdPromo", 'Promo');
itemSpecificCheckbox(xw, "dvdSignatureCollection", 'Signature Collection');
itemSpecificCheckbox(xw, "dvdSpecialEdition", 'Special Edition');
itemSpecificCheckbox(xw, "dvdSteelbook", 'Steelbook');
itemSpecificCheckbox(xw, "dvdUnratedEdition", 'UnratedEdition');
itemSpecificCheckbox(xw, "dvdWidescreen", 'Widescreen');
xw.writeEndElement(); /* NameValueList */
}
xw.writeStartElement('NameValueList');
xw.writeElementString('Name', 'Former Rental');
xw.writeElementString('Value', escapeXml(document.getElementById("dvdRental").value));
xw.writeEndElement(); /* NameValueList */
xw.writeStartElement('NameValueList');
xw.writeElementString('Name', 'Season');
xw.writeElementString('Value', escapeXml(document.getElementById("dvdSeason").value));
xw.writeEndElement(); /* NameValueList */
xw.writeStartElement('NameValueList');
xw.writeElementString('Name', 'Country/Region of Manufacture');
xw.writeElementString('Value', escapeXml(document.getElementById("dvdCountry").value));
xw.writeEndElement(); /* NameValueList */
} else if (CC == 3) {
xw.writeStartElement('NameValueList');
xw.writeElementString('Name', 'Card Manufacturer');
xw.writeElementString('Value', escapeXml(document.getElementById("tcManufacturer").value));
xw.writeEndElement(); /* NameValueList */
if (document.getElementById("tcRookie").checked ||
document.getElementById("tcSerial").checked ||
document.getElementById("tcPoA").checked) {
xw.writeStartElement('NameValueList');
xw.writeElementString('Name', 'Card Attributes');
if (document.getElementById("tcRookie").checked) {
itemSpecificCheckbox(xw, "tcRookie", 'Rookie');
}
if (document.getElementById("tcSerial").checked) {
itemSpecificCheckbox(xw, "tcSerial", 'Serial Numbered');
}
if (document.getElementById("tcPoA").checked) {
itemSpecificCheckbox(xw, "tcPoA", 'Piece of Authentic');
}
xw.writeEndElement(); /* NameValueList */
}
xw.writeStartElement('NameValueList');
xw.writeElementString('Name', 'Product');
xw.writeElementString('Value', 'Single');
xw.writeEndElement(); /* NameValueList */
xw.writeStartElement('NameValueList');
xw.writeElementString('Name', 'Professional Grader');
xw.writeElementString('Value', 'Not Professionally Graded');
xw.writeEndElement(); /* NameValueList */
xw.writeStartElement('NameValueList');
xw.writeElementString('Name', 'Grade');
xw.writeElementString('Value', 'Ungraded');
xw.writeEndElement(); /* NameValueList */
xw.writeStartElement('NameValueList');
xw.writeElementString('Name', 'Original/Reprint');
xw.writeElementString('Value', 'Original');
xw.writeEndElement(); /* NameValueList */
// xw.writeStartElement('NameValueList');
// xw.writeElementString('Name', 'Autograph Authentication');
// xw.writeElementString('Value', 'Not Authenticated');
// xw.writeEndElement(); /* NameValueList */
// xw.writeStartElement('NameValueList');
// xw.writeElementString('Name', 'Autograph Format');
// xw.writeElementString('Value', 'Not Autographed');
// xw.writeEndElement(); /* NameValueList */
xw.writeStartElement('NameValueList');
xw.writeElementString('Name', 'Modified Item');
xw.writeElementString('Value', 'No');
xw.writeEndElement(); /* NameValueList */
xw.writeStartElement('NameValueList');
xw.writeElementString('Name', 'Player');
xw.writeElementString('Value', escapeXml(document.getElementById("tcPlayer").value));
xw.writeEndElement(); /* NameValueList */
xw.writeStartElement('NameValueList');
xw.writeElementString('Name', 'Team');
xw.writeElementString('Value', escapeXml(document.getElementById("tcTeam").value));
xw.writeEndElement(); /* NameValueList */
xw.writeStartElement('NameValueList');
xw.writeElementString('Name', 'Season');
xw.writeElementString('Value', escapeXml(document.getElementById("tcSeason").value));
xw.writeEndElement(); /* NameValueList */
xw.writeStartElement('NameValueList');
xw.writeElementString('Name', 'Year');
xw.writeElementString('Value', escapeXml(document.getElementById("tcSeason").value));
xw.writeEndElement(); /* NameValueList */
xw.writeStartElement('NameValueList');
xw.writeElementString('Name', 'Era');
if (category == '213') {
xw.writeElementString('Value', 'Modern (1981-Now)');
} else {
xw.writeElementString('Value', 'Modern (1970-Now)');
}
xw.writeEndElement(); /* NameValueList */
xw.writeStartElement('NameValueList');
xw.writeElementString('Name', 'League');
if (category == "215") {
xw.writeElementString('Value', 'NFL');
} else if (category == "213") {
xw.writeElementString('Value', 'Major League');
} else if (category == "214") {
xw.writeElementString('Value', 'NBA');
} else if (category == "216") {
xw.writeElementString('Value', 'NHL');
} else {
xw.writeElementString('Value', '');
}
xw.writeEndElement(); /* NameValueList */
xw.writeStartElement('NameValueList');
xw.writeElementString('Name', 'Card Number');
xw.writeElementString('Value', escapeXml(document.getElementById("tcNumber").value));
xw.writeEndElement(); /* NameValueList */
xw.writeStartElement('NameValueList');
xw.writeElementString('Name', 'Series');
xw.writeElementString('Value', escapeXml(document.getElementById("tcSeries").value));
xw.writeEndElement(); /* NameValueList */
xw.writeStartElement('NameValueList');
xw.writeElementString('Name', 'Country/Region of Manufacture');
xw.writeElementString('Value', 'United States');
xw.writeEndElement(); /* NameValueList */
}
xw.writeEndElement(); /* ItemSpecifics */
}
function itemSpecificCheckbox(xw, id, val) {
if (document.getElementById(id).checked) {
xw.writeElementString('Value', val);
}
}
function _cb_findDuplicateListing(root) {
var x;
var response = root.findItemsAdvancedResponse[0];
var ack = response.ack;
if (ack != 'Success') {
x = document.getElementById("productinfoDuplicate").innerHTML += '<br/><span class="bg-danger"><strong>Duplicate Check Failed</strong></span>';
if (ack == 'Failure' || ack == 'PartialFailure') {
return;
}
}
var items = response.searchResult[0].item || [];
if (Number(response.paginationOutput[0].totalEntries) > 0) {
document.getElementById("productinfoDuplicate").innerHTML += '<br/><span class="bg-danger"><strong>Duplicate, see Item Id <a href="https://www.ebay.com/itm/' + items[0].itemId + '" target="_blank">' + items[0].itemId + '</a></strong></span>';
isDuplicate = true;
}
}
function findDuplicateListing() {
var keyword = document.getElementById('keyword').value;
// Construct the request
url = configeBayFinding + "?";
url += "OPERATION-NAME=findItemsAdvanced";
url += "&SERVICE-VERSION=" + configeBayFindingVersion;
url += "&SECURITY-APPNAME=" + configAppid;
url += "&GLOBAL-ID=EBAY-US";
url += "&RESPONSE-DATA-FORMAT=JSON";
url += "&REST-PAYLOAD";
url += "&keywords=";
url += encodeURIComponent(keyword.trim().replace(/ /g, "+"));
url += "&paginationInput.entriesPerPage=1";
url += "&paginationInput.pageNumber=1";
url += "&itemFilter(0).name=Seller";
url += "&itemFilter(0).value=";
url += configeBaySellerName;
url += "&outputSelector=SellerInfo";
// Submit the request
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
_cb_findDuplicateListing(JSON.parse(this.responseText));
}
};
xhttp.open("GET", configProxyUrl, true);
xhttp.setRequestHeader("X-Proxy-Url", encodeURI(url));
xhttp.send();
return false;
}
function _cb_findPotentialDuplicateListing(root) {
var x;
var response = root.findCompletedItemsResponse[0];
var ack = response.ack;
if (ack != 'Success') {
x = document.getElementById("productinfoDuplicate").innerHTML += '<br/><span class="bg-danger"><strong>Duplicate Check Failed</strong></span>';
if (ack == 'Failure' || ack == 'PartialFailure') {
return;
}
}
var items = response.searchResult[0].item || [];
if (Number(response.paginationOutput[0].totalEntries) > 0) {
document.getElementById("productinfoDuplicate").innerHTML += '<br/><span class="bg-warning"><strong>Potential Duplicate, see Item Id <a href="https://www.ebay.com/itm/' + items[0].itemId + '" target="_blank">' + items[0].itemId + '</a></strong></span>';
}
}
function findPotentialDuplicateListing() {
var keyword = document.getElementById('keyword').value;
// Construct the request
url = configeBayFinding + "?";
url += "OPERATION-NAME=findCompletedItems";
url += "&SERVICE-VERSION=" + configeBayFindingVersion;
url += "&SECURITY-APPNAME=" + configAppid;
url += "&GLOBAL-ID=EBAY-US";
url += "&RESPONSE-DATA-FORMAT=JSON";
url += "&REST-PAYLOAD";
url += "&keywords=";
url += encodeURIComponent(keyword.trim().replace(/ /g, "+"));
url += "&paginationInput.entriesPerPage=1";
url += "&paginationInput.pageNumber=1";
url += "&itemFilter(0).name=Seller";
url += "&itemFilter(0).value=";
url += configeBaySellerName;
url += "&outputSelector=SellerInfo";
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
_cb_findPotentialDuplicateListing(JSON.parse(this.responseText));
}
};
xhttp.open("GET", configProxyUrl, true);
xhttp.setRequestHeader("X-Proxy-Url", encodeURI(url));
xhttp.send();
return false;
}
function findShopifyDuplicateListing() {
for (var i = 1; i < 7; i++){
findShopifyDuplicateListingFunc(i);
}
}
function findShopifyDuplicateListingFunc(flag) { // Barcode Search
var queryText = '';
var title = document.getElementById('keyword').value;
var barcode = parseInt(title, 10);
var len;
if (flag < 6 && isNaN(barcode)) {
return;
}
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
//window.alert(this.responseText);
var json = JSON.parse(this.responseText);
if (json.products[0] !== undefined) {
var sku = getJsonValue(json.products[0].variants[0].sku);
var handle = getJsonValue(json.products[0].handle);
document.getElementById("productinfoDuplicate").innerHTML += '<br/><span class="bg-warning"><strong>Potential Duplicate, see Shopify Item Id <a href="https://munatrading.com/products/' + handle + '" target="_blank">' + handle + '</a> (SKU=' + sku + ')</strong></span>';
}
}
};
if (flag == 1) { // handle b{upc}
queryText = 'handle=b' + barcode;
} else if (flag == 2) { // handle b0{upc}
queryText = 'handle=b0' + barcode;
} else if (flag == 3) { // handle b00{upc}
queryText = 'handle=b00' + barcode;
} else if (flag == 4) { // handle b000{upc}
queryText = 'handle=b000' + barcode;
} else if (flag == 5) { // handle {upc} (without leading zeroes)
queryText = 'handle=' + barcode;
} else if (flag == 6) { // title
if (!isNaN(barcode)) {
title = reformatCdTitle(catalogTitle);
}
title = cleanTitleForShopifySearch(title);
queryText = 'title=' + title;
}
xhttp.open("GET", configProxyUrl, true);
xhttp.setRequestHeader("X-Proxy-Url", configShopifyUrl + configShopifyProductsUrl + '?limit=1&fields=id,handle,variants&' + queryText);
if (flag == 6) { xhttp.setRequestHeader("X-LEAVE-ENCODED", "1"); }
xhttp.send();
}
function connected() {
var x;
eBayAuthTokenFlag = true;
if (!document.getElementById("connected").innerHTML.endsWith("(Connected)")) {
document.getElementById("connected").innerHTML += " (Connected)";
}
x = document.getElementById("verify");
x.className = x.className.replace(" btn-danger", " btn-success");
x = document.getElementById("login");
x.className = x.className.replace(" w3-show", "");
x = document.getElementById("results");
x.innerHTML = "";
x.className = x.className.replace(" w3-show", "");
}
function confirmUnload() {
return "Do you really want to leave the quick listing tool?";
}
function uploadSiteHostedPictures() {
imagesToUpload = 0;
imageUploadError = false;
ImageRetryCount = [];
++imagesToUpload;
uploadSiteHostedPicture('image1', 0);
++imagesToUpload;
uploadSiteHostedPicture('image2', 1);
for (var imageNumber = 0; imageNumber < maxAdditionalImages; imageNumber++) {
if (document.getElementById("image" + (imageNumber + 3) + "anchor").className.includes(" visible")) {
++imagesToUpload;
uploadSiteHostedPicture('image' + (imageNumber + 3), (imageNumber + 2));
}
}
function checkImagesToUpload() {
if (imagesToUpload > 0) {
window.setTimeout(checkImagesToUpload, 100); // wait 100 milliseconds
} else {
if (!imageUploadError) {
verifyListing();
} else {
ImageURLs = [];
imagesToUpload = 0;
}
}
}
checkImagesToUpload();
}
function uploadSiteHostedPicture(imageId, index) {
var i;
var str = '';
var imageBasename = document.getElementById(imageId).src.substr(document.getElementById(imageId).src.lastIndexOf('/') + 1);
var maxRetries = 5;
if (ImageRetryCount[index] === undefined) {
ImageRetryCount[index] = 0;
}
str += '<?xml version="1.0" encoding="utf-8"?>';
str += '<UploadSiteHostedPicturesRequest xmlns="urn:ebay:apis:eBLBaseComponents">';
str += ' <RequesterCredentials>';
str += ' <eBayAuthToken>' + eBayAuthToken + '</eBayAuthToken>';
str += ' </RequesterCredentials>';
str += ' <ExtensionInDays>' + 30 + '</ExtensionInDays>';
str += ' <PictureSet>Supersize</PictureSet>';
str += ' <PictureName>' + imageBasename + '</PictureName>';
str += ' <ExternalPictureURL>' + document.getElementById(imageId).src + '</ExternalPictureURL>';
str += '</UploadSiteHostedPicturesRequest>';
var xhr = new XMLHttpRequest();
xhr.open("POST", configProxyUrl, true);
xhr.setRequestHeader('X-EBAY-API-APP-NAME', configAppid);
xhr.setRequestHeader('X-EBAY-API-DEV-NAME', configDevid);
xhr.setRequestHeader('X-EBAY-API-CERT-NAME', configCertid);
xhr.setRequestHeader('X-EBAY-API-COMPATIBILITY-LEVEL', configeBayTradingVersion);
xhr.setRequestHeader('X-EBAY-API-CALL-NAME', 'UploadSiteHostedPictures');
xhr.setRequestHeader('X-EBAY-API-SITEID', '0');
xhr.setRequestHeader('X-Proxy-URL', configServiceEndpoint);
xhr.onload = function() {
var jsonObj = XMLparse(xhr.responseXML, false);
var obj = jsonObj.UploadSiteHostedPicturesResponse;
var str = '';
var returnCode = obj.Ack;
var x = document.getElementById("results");
if (returnCode == 'Success') {
str += '<div class="alert alert-success alert-dismissible">';
str += '<button type="button" class="close" data-dismiss="alert">×</button>';
str += '<p>Image ' + (index + 1);
if (ImageRetryCount[index] > 0){
str += ' (Retry ' + ImageRetryCount[index] + ')';
}
str += ' Upload: <strong>' + returnCode + '</strong></p>';
str += '</div>';
x.innerHTML += str;
ImageURLs[index] = obj.SiteHostedPictureDetails.FullURL;
--imagesToUpload;
} else {
str += '<div class="alert alert-danger alert-dismissible">';
str += '<button type="button" class="close" data-dismiss="alert">×</button>';
str += '<p>Image ' + (index + 1);
if (ImageRetryCount[index] > 0){
str += ' (Retry ' + ImageRetryCount[index] + ')';
}
str += ' Upload: <strong>' + returnCode + '</strong></p>';
var errors = getJsonArray(obj.Errors);
str += "<ul>";
for (i = 0; i < errors.length; i++) {
str += '<li>' + errors[i].SeverityCode + " (" + errors[i].ErrorCode + "): " + escapeHtml(errors[i].LongMessage) + "</li>";
}
str += "</ul>";
str += '</div>';
x.innerHTML += str;
if (ImageRetryCount[index] < maxRetries) {
++ImageRetryCount[index];
uploadSiteHostedPicture(imageId, index);
} else {
ImageURLs = [];
imageUploadError = true;
--imagesToUpload;
}
}
};
xhr.send(str);
}
function findDiscogsReleases(str) {
var releaseNumber = "";
var pos = 0;
if (str.length < 1) {
return;
}
// Check if release number is in title
pos = str.lastIndexOf("(R");
releaseInTitle = false;
if (pos > 0) {
releaseNumber = str.substr(pos + 2, str.length - pos - 3);
if (isNumeric(releaseNumber)) {
str = "r" + releaseNumber;
releaseInTitle = true;
}
}
// Construct the request
url = configDiscogsApiUrl + "?";
url += "token=";
url += configDiscogsToken;
url += "&type=release";
url += "&format=CD";
if (isNumeric(str)) {
url += "&barcode=";
} else {
url += "&q=";
}
url += str;
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 /*&& this.status == 200*/) {
var response = this.responseText;
if (this.status != 200) { // discogs returns HTML instead JSON
response = '{"pagination": {"per_page": 50, "items": 0, "page": 1, "urls": {}, "pages": 1}, "results": []}';
}
_cb_findDiscogsReleases(JSON.parse(response));
}
};
xhttp.open("GET", configProxyUrl, true);
xhttp.setRequestHeader("X-Proxy-Url", encodeURI(url.trim().replace(/ /g, "+")));
xhttp.send();
}
function _cb_findDiscogsReleases(root) {
var tableStr = '';
var i, j;
var x;
tableStr = '<h3>Discogs Releases</h3>';
tableStr += '<table id="discogsTable" class="table small table-hover">';
tableStr += '<thead class="thead-dark">';
tableStr += '<tr>';
tableStr += tableHeader('Title');
tableStr += tableHeader('Label');
tableStr += tableHeader('Catalog #');
tableStr += tableHeader('Format');
tableStr += tableHeader('Year');
tableStr += tableHeader('Country');
tableStr += tableHeader('Genre');
tableStr += tableHeader('');
tableStr += '</tr>';
tableStr += '</thead>';
tableStr += '<tbody>';
for (i = 0; i < root.results.length; i++) {
tableStr += '<tr';
if (root.results[i].country.startsWith("US")) {
tableStr += ' class="bg-white invert"';
}
tableStr += '>';
tableStr += tableCellLink(root.results[i].title, configDiscogsBaseUrl + root.results[i].uri);
str = [];
for (j = 0; j < root.results[i].label.length && j < 2; j++) {
str.push(root.results[i].label[j]);
}
tableStr += tableCell(str.join(', '));
tableStr += tableCell(root.results[i].catno);
str = [];
for (j = 0; j < root.results[i].format.length; j++) {
str.push(root.results[i].format[j]);
}
tableStr += tableCell(str.join(', '));
tableStr += tableCell(root.results[i].year);
tableStr += tableCell(root.results[i].country);
str = "";
if (root.results[i].style.length > 0) {
str = " (" + root.results[i].style.join(', ') + ")";
}
tableStr += tableCell(root.results[i].genre.join(', ') + str);
tableStr += tableCellButton(root.results[i].resource_url);
tableStr += '</tr>';
}
tableStr += '</tbody>';
tableStr += '</table>';
tableStr += '<div class="container-fluid">';
tableStr += '<form id="searchFormDiscogs" class="form-inline" onsubmit="specialDiscogsSearch();return false;">';
tableStr += '<div class="input-group">';
tableStr += '<label for="discogsRelease" class="keepTogether mr-sm-2">Release #:</label>';
tableStr += '<input id="discogsRelease" name="discogsRelease" class="form-control" style="width:30%;font-size:95%!important" type="text" maxlength="10">';
tableStr += '<div class="input-group-append">';
tableStr += '<button class="btn mx-2" onclick="specialDiscogsSearch();return false;"><i class="fa fa-search"></i></button>';
tableStr += '</div>';
tableStr += '</div>';
tableStr += '</form>';
tableStr += '</div>';
if (!document.getElementById("productinfoSearch").innerHTML.includes("Discogs")) {
document.getElementById("productinfoSearch").innerHTML += '<a href="https://www.discogs.com/search/?q=&format_exact=CD&type=all" target="_blank"><button class="btn mx-2"><i class="fa fa-search"></i> Discogs</button></a>';
}
x = document.getElementById("discogsReleases");
x.innerHTML = tableStr;
if (x.className.indexOf("w3-show") == -1) {
x.className += " w3-show";
}
x = document.getElementById("productinfoSearch");
if (!x.innerHTML.includes("FindCheapMusic")) {
x.innerHTML += '<a href="https://www.findcheapmusic.com/index.php?q=' + upc + '" target="blank"><button class="btn mx-2"><i class="fa fa-search"></i> FindCheapMusic</button></a>';
}
}
function specialDiscogsSearch() {
if (document.getElementById("discogsRelease").value.length > 0) {
findDiscogsReleases("r" + document.getElementById("discogsRelease").value);
}
}
function tableHeader(str) {
return ('<th>' + (str === undefined ? '' : str) + '</th>');
}
function tableCell(str) {
return ('<td>' + (str === undefined ? '' : str) + '</td>');
}
function tableCellLink(text, link) {
var str = "<a href=\"" + link + "\" target=\"_blank\">" + text + "</a>";
return ('<td>' + str + '</td>');
}
function tableCellButton(link) {
var str = '<button type="button" class="btn btn-primary fa fa-arrow-left" onclick="getDiscogsRelease("' + link + '");"></button>';
return ('<td>' + str + '</td>');
}
function getDiscogsRelease(url) {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
_cb_getDiscogsRelease(JSON.parse(this.responseText));
}
};
xhttp.open("GET", configProxyUrl, true);
xhttp.setRequestHeader("X-Proxy-Url", encodeURI(url));
xhttp.send();
}
function _cb_getDiscogsRelease(root) {
var str;
var titleStr = '';
var trackStr;
var artist;
var label;
var year;
var position;
var promo = '';
var digipak = '';
var duration = '';
var quantity = '';
var i, j;
var temp;
// xxxxx getDiscogsPriceRecommendation(root.id);
// Tracklist
trackStr = [];
allNumbers = true;
for (i = 0; i < root.tracklist.length; i++) {
str = '';
if (root.tracklist[i].position.length > 0) {
str += root.tracklist[i].position + '. ';
position = Number(root.tracklist[i].position);
if (isNaN(position) || position != (i + 1)) {
allNumbers = false;
}
}
if (root.tracklist[i].artists !== undefined) {
for (j = 0; j < root.tracklist[i].artists.length; j++) {
temp = root.tracklist[i].artists[j].name.replace(/\([0-9]+\)$/, "");
str += temp + " " + root.tracklist[i].artists[j].join + " ";
}
str += " - ";
}
str += root.tracklist[i].title;
if (root.tracklist[i].duration.length > 0) {
str += " [" + root.tracklist[i].duration + "]";
}
trackStr.push(str);
}
str = str.replace(/ +/g, ' ');
if (allNumbers) {
for (i = 0; i < trackStr.length; i++) {
trackStr[i] = trackStr[i].replace(/^\d+. /g, '');
}
} else {
document.getElementById("cdUnorderedTrackList").checked = true;
}
$("#cdTracks").val(trackStr.join('\n'));
updateTracklistPreview();
// Title
titleStr = '';
artist = '';
label = '';
year = '';
catno = '';
if (root.artists !== undefined) {
for (i = 0; i < root.artists.length; i++) {
temp = root.artists[i].name.replace(/\([0-9]+\)$/, "");
artist += temp + " " + root.artists[i].join + " ";
}
}
artist = artist.trim();
if (artist != 'Various') {
titleStr += artist + " - " + root.title;
} else {
titleStr += root.title + " by Various Artists";
}
titleStr += " (CD";
document.getElementById("cdTitle").value = root.title;
// formats
promo = '';
duration = '';
quantity = '';
digipak = '';
for (i = 0; i < root.formats.length; i++) {
if (root.formats[i].name.startsWith("CD")) {
if (root.formats[i].descriptions !== undefined) {
for (j = 0; j < root.formats[i].descriptions.length; j++) {
if (root.formats[i].descriptions[j] == "Enhanced") {
document.getElementById("cdEnhanced").checked = true;
} else if (root.formats[i].descriptions[j] == "Compilation") {
document.getElementById("cdCompilation").checked = true;
} else if (root.formats[i].descriptions[j] == "Digipak") {
document.getElementById("cdDigipak").checked = true;
digipak = root.formats[i].descriptions[j];
setCdConditionDescription('D');
} else if (root.formats[i].descriptions[j] == "Promo") {
document.getElementById("cdPromo").checked = true;
promo = 'PROMO';
} else if (root.formats[i].descriptions[j] == "Reissue") {
document.getElementById("cdReissue").checked = true;
} else if (root.formats[i].descriptions[j] == "Remastered") {
document.getElementById("cdRemastered").checked = true;
} else if (root.formats[i].descriptions[j] == "Club Edition") {
document.getElementById("cdClub").checked = true;
} else if (root.formats[i].descriptions[j] == "HDCD") {
document.getElementById("cdHDCD").checked = true;
} else if (root.formats[i].descriptions[j] == "Album" ||
root.formats[i].descriptions[j] == "Mini-Album" ||
root.formats[i].descriptions[j] == "EP" ||
root.formats[i].descriptions[j] == "Maxi-Single" ||
root.formats[i].descriptions[j] == "Single") {
$('#cdDuration').selectpicker('val', root.formats[i].descriptions[j]);
$('#cdDuration').prop('disabled', false).selectpicker('refresh');
if (!root.formats[i].descriptions[j].includes("Album")) {
duration = root.formats[i].descriptions[j];
}
}
}
}
discogsQty = Number(root.formats[i].qty);
if (discogsQty > 1) {
setCdConditionDescription('P');
quantity = Number(root.formats[i].qty) + ' Discs';
}
}
}
// genres
if (document.getElementById("cdGenre").value.length <= 1) {
for (i = 0; i < root.genres.length; i++) {
if (isInSelectList("cdGenre", root.genres[i])) {
$('#cdGenre').prop('disabled', false).selectpicker('refresh');
break;
}
}
}
// country
var country = getJsonValue(root.country);
if (country != 'undefined' && country != 'US' && !country.includes('Europe')) {
if (country == 'UK') {
document.getElementById("cdCountry").value = 'United Kingdom';
} else {
document.getElementById("cdCountry").value = root.country;
}
} else {
document.getElementById("cdCountry").value = "United States";
}
// title remainder
if (duration.length > 0) {
titleStr += ", " + duration;
}
if (digipak.length > 0) {
titleStr += ", " + digipak;
}
if (quantity.length > 0) {
titleStr += ", " + quantity;
}
if (root.released !== undefined) {
year = root.released.substr(0, 4);
titleStr += ", " + year;
}
if (root.labels !== undefined) {
label = root.labels[0].name;
titleStr += ", " + label;
}
titleStr += ")";
if (promo.length > 0) {
titleStr += " " + promo + ' ' + root.labels[0].catno;
}
titleStr = titleStr.trim();
titleStr = titleStr.replace(/ +/g, ' ');
titleStr = titleStr.replace('<br>', '');
if (titleStr.includes('Greatest Hits')) {
document.getElementById("cdGreatestHits").checked = true;
}
if (isNumeric(document.getElementById("title").value) || document.getElementById("title").value.length === 0 || releaseInTitle) {
document.getElementById("title").value = titleStr;
printTitleLength();
document.getElementById("cdArtist").value = artist;
document.getElementById("cdRecordLabel").value = label;
document.getElementById("cdReleaseYear").value = year;
}
}
function getDiscogsPriceRecommendation(release) {
// Construct the request
url = configDiscogsPriceUrl + release;
url += "&token=";
url += configDiscogsToken;
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
var response = this.responseText;
if (this.status != 200) { // discogs returns HTML instead JSON
response = '{"pagination": {"per_page": 50, "items": 0, "page": 1, "urls": {}, "pages": 1}, "results": []}';
}
/* _cb_findDiscogsReleases(JSON.parse(response)); */
}
};
xhttp.open("GET", configProxyUrl, true);
xhttp.setRequestHeader("X-Proxy-Url", encodeURI(url));
xhttp.setRequestHeader("User-Agent", configDiscogsUserAgent);
xhttp.send();
}
function isInSelectList(list, value) {
var i;
var opts = document.getElementById(list).options;
for (i = 0; i < opts.length; ++i)
if (opts[i].value.includes(value)) {
$('#' + list).selectpicker('val', opts[i].value);
return true;
}
return false;
}
function printTitleLength() {
var len = document.getElementById("title").value.length;
color = (len > 80 ? 'red' : 'black');
document.getElementById("titleLength").innerHTML = '(' + len + ')';
document.getElementById("titleLength").style.color = color;
}
function setModifiedDescription() {
if (document.getElementById("cdModified").value == 'Yes') {
document.getElementById("cdModificationDescription").value = 'Marked by Record Label as Radio/DJ Promo: Barcode punched out.';
} else {
document.getElementById("cdModificationDescription").value = '';
}
}
</script>
<script>includeHTML();</script>
</body>
</html>