NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript==
// @name Amazon CamelCamelCamel Graph
// @version 1.0.6
// @description Add CamelCamelCamel graph, link to Amazon product pages.
// @author Andrew Metzger
// @namespace http://static.nerdoncloud.com/userscripts/
// @include /^https?://www\.amazon\.tld/*$/
// @include http://*.camelcamelcamel.com/*
// @include http://camelcamelcamel.com/*
// @require https://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.js
// @require https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js
// ==/UserScript==
var width = 400;
var height = 250;
var chart = "amazon-new"; // Possible values are "amazon", "amazon-new", "new", "used", "new-used", "amazon-new-used"
var arr = document.domain.split(".");
var country = arr[arr.length - 1];
if (country == "com") {
country = "us";
}
var element = $(':input[id="ASIN"]');
var asin = $.trim(element.attr("value"));
if (asin === "") {
element = $(':input[id="ASIN"]');
asin = $.trim(element.attr("value"));
}
var link2 = "<a target='blank' href='http://" + country + ".camelcamelcamel.com/product/" + asin + "'><img src='http://charts.camelcamelcamel.com/" + country + "/" + asin + "/" + chart + ".png?force=1&zero=0&w=" + width + "&h=" + height + "&desired=false&legend=1&ilt=1&tp=all&fo=0' /></a>";
var camelurl = 'http://' + country + '.camelcamelcamel.com/product/' + asin;
GM_xmlhttpRequest({
method: 'GET',
url: camelurl,
onload: function (response) {
var parser = new DOMParser();
var responseDoc = parser.parseFromString(response.responseText, "text/html");
var chartpost = 0;
if (chart == "amazon" || chart == "amazon-new" || chart == "amazon-new-used" || chart == "amazon-used") {
if (!responseDoc.getElementById('price_type_1').disabled) {
$("#averageCustomerReviews_feature_div").append("<div id='camelcamelcamel' style='margin-top: 10px; margin-left: -10px'>" + link2 + "</div>");
chartpost = 1;
}
}
if (chart == "new" || chart == "amazon-new" || chart == "amazon-new-used" || chart == "new-used") {
if (!responseDoc.getElementById('price_type_2').disabled && chartpost === 0) {
$("#averageCustomerReviews_feature_div").append("<div id='camelcamelcamel' style='margin-top: 10px; margin-left: -10px'>" + link2 + "</div>");
chartpost = 1;
}
}
if (chart == "used" || chart == "amazon-used" || chart == "amazon-new-used" || chart == "new-used") {
if (!responseDoc.getElementById('price_type_2').disabled && chartpost === 0) {
$("#averageCustomerReviews_feature_div").append("<div id='camelcamelcamel' style='margin-top: 10px; margin-left: -10px'>" + link2 + "</div>");
}
}
}
});
function thisCodeProduct() {
var url = unescape(location.href);
var pattern = "http://([a-z]{0,2}).?camelcamelcamel.com/(.*)/product/B([A-Z0-9]{9}).*";
var exp = new RegExp(pattern, "gi");
return url.replace(exp, "$3");
}
var url = unescape(location.href);
var pattern = "http://([a-z]{0,2}).?camelcamelcamel.com/.*";
var exp = new RegExp(pattern, "gi");
var code = url.replace(exp, "$1");
if (code === '')
code = 'com';
else if (code == 'uk')
code = 'co.uk';
$(document).ready(function () {
var links = document.evaluate("//a[contains(@href, 'camelcamelcamel.com')]", document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
for (var i = 0; i < links.snapshotLength; i++) {
var link = links.snapshotItem(i);
if (link.title == 'View the product page at Amazon') {
link.removeAttribute('onclick');
link.href = 'https://www.amazon.' + code + '/dp/B' + thisCodeProduct() + '/';
}
}
});
(function (doc) {
// ASIN.0 in kindle store
var asin = doc.getElementById("ASIN") || doc.getElementsByName("ASIN.0")[0];
if (asin) {
asin = asin.value;
history.replaceState(null, "", "/dp/" + asin + "/");
}
})(document);