var labelType, useGradients, nativeTextSupport, animate; (function() { var ua = navigator.userAgent, iStuff = ua.match(/iPhone/i) || ua.match(/iPad/i), typeOfCanvas = typeof HTMLCanvasElement, nativeCanvasSupport = (typeOfCanvas == 'object' || typeOfCanvas == 'function'), textSupport = nativeCanvasSupport && (typeof document.createElement('canvas').getContext('2d').fillText == 'function'); //I'm setting this based on the fact that ExCanvas provides text support for IE //and that as of today iPhone/iPad current text support is lame labelType = (!nativeCanvasSupport || (textSupport && !iStuff))? 'Native' : 'HTML'; nativeTextSupport = labelType == 'Native'; useGradients = nativeCanvasSupport; animate = !(iStuff || !nativeCanvasSupport); })(); var Log = { elem: false, write: function(text){ if (!this.elem) this.elem = document.getElementById('log'); this.elem.innerHTML = text; this.elem.style.left = (500 - this.elem.offsetWidth / 2) + 'px'; } }; function init(){ //init data var json = { "children": [ { "data":{"cap":"€11,392,016,000","sec": "Yes","$area": 11392016384,"$color":"#009900"}, "id": "Transocean Ltd", "name": "Transocean Ltd" }, { "data":{"cap":"€9,162,599,000","sec": "Yes","$area": 9162599424,"$color":"#009900"}, "id": "Weatherford Intl Ltd", "name": "Weatherford Intl Ltd" }, { "data":{"cap":"€107,964,000","sec": "No","$area": 107964440,"$color":"#1A2E49"}, "id": "Petroplus Holdings Ag", "name": "Petroplus Holdings Ag" }, { "data":{"cap":"","sec": "No","$area": 1,"$color":"#1C2D46"}, "id": "Alumina Ltd-ch Certificate *", "name": "Alumina Ltd-ch Certificate *" }, { "data":{"cap":"€624,903,000","sec": "No","$area": 624902912,"$color":"#192961"}, "id": "Schmolz+bickenbach Ag-reg", "name": "Schmolz+bickenbach Ag-reg" }, { "data":{"cap":"€32,495,000","sec": "No","$area": 32494954,"$color":"#172B58"}, "id": "Zwahlen & Mayr Sa-br", "name": "Zwahlen & Mayr Sa-br" }, { "data":{"cap":"€8,870,000","sec": "No","$area": 8870192,"$color":"#1B2B5F"}, "id": "Swissmetal Holding Ag", "name": "Swissmetal Holding Ag" }, { "data":{"cap":"€512,288,000","sec": "No","$area": 512287744,"$color":"#1B2A45"}, "id": "International Minerals Corp *", "name": "International Minerals Corp *" }, { "data":{"cap":"€78,425,924,000","sec": "Yes","$area": 78425923584,"$color":"#009900"}, "id": "Schlumberger Ltd *", "name": "Schlumberger Ltd *" }, { "data":{"cap":"€9,124,175,000","sec": "Yes","$area": 9124174848,"$color":"#009900"}, "id": "Gold Fields Ltd *", "name": "Gold Fields Ltd *" }, { "data":{"cap":"€16,099,015,000","sec": "Yes","$area": 16099014656,"$color":"#009900"}, "id": "Baker Hughes Inc *", "name": "Baker Hughes Inc *" }, { "data":{"cap":"€43,234,226,000","sec": "No","$area": 43234226176,"$color":"#172F4E"}, "id": "Anglo American Plc *", "name": "Anglo American Plc *" }, { "data":{"cap":"€39,694,508,000","sec": "No","$area": 39694508032,"$color":"#192840"}, "id": "Xstrata Plc *", "name": "Xstrata Plc *" }, { "data":{"cap":"€68,083,184,000","sec": "No","$area": 68083183616,"$color":"#1C2A5C"}, "id": "China Shenhua Energy Co-h *", "name": "China Shenhua Energy Co-h *" }, { "data":{"cap":"","sec": "No","$area": 1,"$color":"#1A2C4D"}, "id": "Transocean Ltd - 2nd Line *", "name": "Transocean Ltd - 2nd Line *" } ] }; //end //init TreeMap var tm = new $jit.TM.Squarified({ //where to inject the visualization injectInto: 'infovis', //parent box title heights titleHeight: 0, //enable animations animate: false, //box offsets offset: 1, //Attach left and right click events Events: { enable: false }, duration: 1000, //Enable tips Tips: { enable: true, //add positioning offsets offsetX: 20, offsetY: 20, //implement the onShow method to //add content to the tooltip when a node //is hovered onShow: function(tip, node, isLeaf, domElement) { var html = "
" + node.name + "
"; var data = node.data; if(data.cap) { html += "Market Cap: " + data.cap; } if(data.sec) { html += "
SEC Coverage: " + data.sec; } tip.innerHTML = html; } }, //Add the name of the node in the correponding label //This method is called once, on label creation. onCreateLabel: function(domElement, node){ // if (node.data.$width > 10) { domElement.innerHTML = node.name; // } var style = domElement.style; style.display = ''; style.border = '1px solid transparent'; domElement.onmouseover = function() { style.border = '1px solid #9FD4FF'; }; domElement.onmouseout = function() { style.border = '1px solid transparent'; }; } }); tm.loadJSON(json); tm.refresh(); //end //add events to radio buttons var sq = $jit.id('r-sq'), st = $jit.id('r-st'), sd = $jit.id('r-sd'); var util = $jit.util; util.addEvent(sq, 'change', function() { if(!sq.checked) return; util.extend(tm, new $jit.Layouts.TM.Squarified); tm.refresh(); }); util.addEvent(st, 'change', function() { if(!st.checked) return; util.extend(tm, new $jit.Layouts.TM.Strip); tm.layout.orientation = "v"; tm.refresh(); }); util.addEvent(sd, 'change', function() { if(!sd.checked) return; util.extend(tm, new $jit.Layouts.TM.SliceAndDice); tm.layout.orientation = "v"; tm.refresh(); }); //add event to the back button var back = $jit.id('back'); $jit.util.addEvent(back, 'click', function() { tm.out(); }); }