Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <script language="Javascript">
- var url = "";
- //Cross browser method to get an object
- function getObject(id)
- {
- if (document.getElementById)
- //IE 5.x or NS 6.x or above
- return document.getElementById(id);
- else if (document.all)
- //IE 4.x
- return document.all[id];
- else
- //Netscape 4.x
- return document[id];
- }
- function setMarket(m) {
- getObject('m').value = m;
- updateChart(1);
- }
- var resizeTimeout = false;
- jQuery(window).resize( function() {
- clearTimeout(resizeTimeout);
- resizeTimeout = setTimeout("updateChart(0, true)", 100);
- });
- //Update the chart according to user selection
- function updateChart(updateURL, noclear)
- {
- resizeTimeout = false;
- var box = jQuery('#content_chart');
- var boxwidth = box.innerWidth() - 40;
- //
- //we encode the values of all form elements as query parameters
- //
- var elements = getObject("chartoptions").elements;
- url = "";
- var hash = new Array();
- var market = "";
- for (var i = 0; i < elements.length; ++i)
- {
- var e = elements[i];
- if (e.type == "checkbox")
- url = url + e.id + "=" + (e.checked ? "1" : "0") + "&";
- else
- url = url + e.id + "=" + escape(e.value) + "&";
- if(e.id == "m") {
- market = e.value;
- } else if (e.type != "submit") {
- if (e.type == "checkbox") {
- if(e.checked)
- hash.push(e.id)
- } else if (e.value)
- hash.push(e.id + "g" + escape(e.value));
- }
- }
- if(updateURL > 0) {
- urlhash = hash.join("z");
- new_url = location.href.replace(/\/[^/]+$/, "/") + market + '#' + urlhash;
- jQuery('#permalink').val(new_url);
- if (typeof history.pushState == 'function') {
- if(updateURL == 2)
- history.replaceState("m=" + market + "," + urlhash, document.title, market + '#' + urlhash);
- else
- history.pushState("m=" + market + "," + urlhash, document.title, market + '#' + urlhash);
- }
- }
- //Now we update the URL of the image to update the chart
- var d = new Date;
- var img = getObject("ChartImage");
- img.src = "chart.png?width=" + boxwidth + "&" + url;
- img.onload = function() {
- return;
- var img = jQuery(this);
- var o = jQuery('#ChartOverlay');
- o.width(this.width);
- o.height(this.height);
- o.css('position', 'absolute');
- o.css('left', img.offset()['left']);
- o.css('top', img.offset()['top']);
- };
- if (!noclear) clear_table();
- if (updateURL == 1)
- ga('send', 'pageview', location.pathname);
- }
- function load_table() {
- var table = jQuery("#chart_table");
- table.show();
- update_table('chart.json?' + url);
- return false;
- }
- function clear_table() {
- var table = jQuery("#chart_table");
- table.children("tbody tr").remove();
- table.hide();
- }
- function update_table(url) {
- var table = jQuery("#chart_table tbody");
- table.children().remove();
- table.append("<tr><td colspan=8>Loading...</td></tr>");
- jQuery.getJSON(url, null, function (data) {
- table.children().remove();
- if (!data) {
- table.append("<tr><td colspan=8>No data returned.</td></tr>");
- return;
- }
- function round(a, n) {
- if (a == "—")
- return a;
- return Math.round(a * Math.pow(10, n)) / Math.pow(10, n);
- }
- function ISODateString(d) {
- function pad(n){
- return n<10 ? '0'+n : n
- }
- return d.getUTCFullYear()+'-'
- + pad(d.getUTCMonth()+1)+'-'
- + pad(d.getUTCDate())+' '
- + pad(d.getUTCHours())+':'
- + pad(d.getUTCMinutes())+':'
- + pad(d.getUTCSeconds());
- }
- for (var i = 0; i < data.length; i++){
- var timestamp = new Date();
- timestamp.setTime(data[i][0] * 1000);
- for (var j = 1; j < 8; j++) {
- if (data[i][j] == 1.7e308)
- data[i][j] = "—";
- }
- var o = data[i][1];
- var h = data[i][2];
- var l = data[i][3];
- var c = data[i][4];
- var v = data[i][5];
- var cv = data[i][6];
- var avg = data[i][7];
- if (v == 0) continue;
- row = [ISODateString(timestamp), o, h, l, c, round(v, 2), round(cv, 2), round(avg, 2)];
- table.append("<tr><td>" + row.join("</td><td>") + "</td></tr>");
- }
- });
- }
- function customTime() {
- var c = document.getElementById("c").checked;
- if(c) {
- var d = parseInt(document.getElementById("r").value);
- if(d == 0) {
- d = 29;
- }
- var x = "-" + (d-1) + "d";
- jQuery("#s").datepicker("setDate", x);
- jQuery("#e").datepicker("setDate", "1d");
- jQuery("#CustomTimeBox").show();
- jQuery("#r").hide();
- } else {
- jQuery("#s").val("");
- jQuery("#e").val("");
- jQuery("#CustomTimeBox").hide();
- jQuery("#r").show();
- }
- }
- window.onpopstate = function(e) {
- if(e.state.length > 0)
- parseHash(e.state);
- updateChart(0);
- };
- jQuery(document).ready(function(){
- jQuery("#CustomTimeBox").hide();
- var hash = location.hash.substring(1);
- if(hash.length > 0)
- parseHash(hash);
- customTime();
- jQuery("#s").datepicker({ dateFormat: 'yy-mm-dd' });
- jQuery("#e").datepicker({ dateFormat: 'yy-mm-dd' });
- updateChart(2);
- jQuery("#chartoptions").change( function() {
- updateChart(1);
- });
- jQuery("#c").change( function() {
- customTime();
- });
- jQuery("#r").change( function() {
- document.getElementById("c").checked = false;
- });
- jQuery("#Prev").click( function() {
- if(document.getElementById("c").checked == false) {
- jQuery("#c").click();
- }
- s = document.getElementById("s");
- e = document.getElementById("e");
- s.value = Date.parse(s.value).add(-1).days().toString("yyyy-MM-dd");
- e.value = Date.parse(e.value).add(-1).days().toString("yyyy-MM-dd");
- });
- jQuery("#Next").click( function() {
- if(document.getElementById("c").checked == false) {
- jQuery("#c").click();
- }
- s = document.getElementById("s");
- e = document.getElementById("e");
- s.value = Date.parse(s.value).add(1).days().toString("yyyy-MM-dd");
- e.value = Date.parse(e.value).add(1).days().toString("yyyy-MM-dd");
- });
- jQuery("#getPermalink").fancybox({'transitionIn': 'none', 'transitionOut': 'none', 'scrolling': 'no', 'titleShow': false, 'overlayShow': false});
- });
- var old_width = "";
- function fullWidth() {
- if (old_width == "")
- old_width = jQuery("#content_chart").css("width");
- var w = jQuery("#content_chart").css("width");
- if (w != old_width) {
- jQuery("#content_chart").css("width", old_width);
- } else {
- jQuery("#content_chart").css("width", "auto");
- }
- updateChart(0);
- return false;
- }
- function parseHash(hash) {
- /* Reset timerange, volume and chart type if hash is supplied.
- They expect different 0/none as defaults */
- getObject("v").checked = false;
- getObject("t").value = "";
- getObject("r").value = "";
- var data = hash.split('z');
- for (var i = 0; i < data.length; ++i) {
- var x = data[i].split('g');
- if(e = getObject(x.shift())) {
- if (e.type == "checkbox")
- e.checked = true;
- else
- e.value = x.join('g');
- }
- }
- }
- </script>
Advertisement
Add Comment
Please, Sign In to add comment