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":"","sec": "No","$area": 1,"$color":"#173240"}, "id": "Seligdar-cls *", "name": "Seligdar-cls *" }, { "data":{"cap":"€29,546,506,000","sec": "No","$area": 29546506240,"$color":"#153060"}, "id": "Novatek Oao", "name": "Novatek Oao" }, { "data":{"cap":"€102,119,000","sec": "No","$area": 102118520,"$color":"#193150"}, "id": "Chelyabinsk Zinc Plant *", "name": "Chelyabinsk Zinc Plant *" }, { "data":{"cap":"€1,179,188,000","sec": "No","$area": 1179188480,"$color":"#1A2B37"}, "id": "Slavneft-megionneftegaz", "name": "Slavneft-megionneftegaz" }, { "data":{"cap":"","sec": "No","$area": 1,"$color":"#17313C"}, "id": "Chusovskoy Metallurgical-cls *", "name": "Chusovskoy Metallurgical-cls *" }, { "data":{"cap":"","sec": "No","$area": 1,"$color":"#173250"}, "id": "Kuzocm - Brd *", "name": "Kuzocm - Brd *" }, { "data":{"cap":"€2,327,872,000","sec": "No","$area": 2327872000,"$color":"#182F4F"}, "id": "Raspadskaya", "name": "Raspadskaya" }, { "data":{"cap":"€2,191,640,000","sec": "No","$area": 2191640320,"$color":"#1A2F5C"}, "id": "Ak Transneft Oao-pref", "name": "Ak Transneft Oao-pref" }, { "data":{"cap":"","sec": "No","$area": 1,"$color":"#163251"}, "id": "Nizhnevartovskneftegaz-cls *", "name": "Nizhnevartovskneftegaz-cls *" }, { "data":{"cap":"","sec": "No","$area": 1,"$color":"#182C39"}, "id": "Oil Technology Overseas *", "name": "Oil Technology Overseas *" }, { "data":{"cap":"€973,241,000","sec": "No","$area": 973240960,"$color":"#1B2F47"}, "id": "Suek-krasnoyarsk Jsc", "name": "Suek-krasnoyarsk Jsc" }, { "data":{"cap":"€102,291,000","sec": "No","$area": 102290768,"$color":"#16284B"}, "id": "Ashinsky Metallurgical", "name": "Ashinsky Metallurgical" }, { "data":{"cap":"","sec": "No","$area": 1,"$color":"#1E2E4C"}, "id": "Udmurtneft-pfd-cls *", "name": "Udmurtneft-pfd-cls *" }, { "data":{"cap":"","sec": "No","$area": 1,"$color":"#192C61"}, "id": "Surgutneftegas *", "name": "Surgutneftegas *" }, { "data":{"cap":"€325,657,000","sec": "No","$area": 325657280,"$color":"#1C324D"}, "id": "Korshunovsky Gok", "name": "Korshunovsky Gok" }, { "data":{"cap":"","sec": "No","$area": 1,"$color":"#1E2C53"}, "id": "Alrosa-nurba-cls *", "name": "Alrosa-nurba-cls *" }, { "data":{"cap":"€2,064,979,000","sec": "No","$area": 2064979200,"$color":"#1C2C56"}, "id": "Tmk Oao", "name": "Tmk Oao" }, { "data":{"cap":"€904,247,000","sec": "No","$area": 904246912,"$color":"#152A45"}, "id": "Moscow Oil Refinery", "name": "Moscow Oil Refinery" }, { "data":{"cap":"€1,043,401,000","sec": "No","$area": 1043400832,"$color":"#182C4F"}, "id": "Bashneft-pfd-cls", "name": "Bashneft-pfd-cls" }, { "data":{"cap":"","sec": "No","$area": 1,"$color":"#1B285E"}, "id": "Lenzoloto-pfd *", "name": "Lenzoloto-pfd *" }, { "data":{"cap":"","sec": "No","$area": 1,"$color":"#1C2B35"}, "id": "Electrozinc Ojsc-cls *", "name": "Electrozinc Ojsc-cls *" }, { "data":{"cap":"€3,673,748,000","sec": "No","$area": 3673748480,"$color":"#1C2D32"}, "id": "Magnitogorsk Iron&steel", "name": "Magnitogorsk Iron&steel" }, { "data":{"cap":"€6,013,674,000","sec": "No","$area": 6013673984,"$color":"#152A63"}, "id": "Bashneft-cls", "name": "Bashneft-cls" }, { "data":{"cap":"€130,366,000","sec": "No","$area": 130365520,"$color":"#192B5A"}, "id": "Lenzoloto", "name": "Lenzoloto" }, { "data":{"cap":"","sec": "No","$area": 1,"$color":"#1C2842"}, "id": "Sredneuralsky Copper Fac-brd *", "name": "Sredneuralsky Copper Fac-brd *" }, { "data":{"cap":"","sec": "No","$area": 1,"$color":"#17295A"}, "id": "Chernogorneft *", "name": "Chernogorneft *" }, { "data":{"cap":"","sec": "No","$area": 1,"$color":"#1D314E"}, "id": "Vareganneftegaz-pfd *", "name": "Vareganneftegaz-pfd *" }, { "data":{"cap":"€5,162,118,000","sec": "No","$area": 5162118144,"$color":"#172959"}, "id": "Polymetal-cls", "name": "Polymetal-cls" }, { "data":{"cap":"","sec": "No","$area": 1,"$color":"#1E2B4B"}, "id": "Buryatzoloto *", "name": "Buryatzoloto *" }, { "data":{"cap":"€694,222,000","sec": "No","$area": 694222080,"$color":"#172F60"}, "id": "Chelyabinsk Pipe Works", "name": "Chelyabinsk Pipe Works" }, { "data":{"cap":"","sec": "No","$area": 1,"$color":"#153142"}, "id": "Yakutsk Fuel-energy Co *", "name": "Yakutsk Fuel-energy Co *" }, { "data":{"cap":"€84,525,000","sec": "No","$area": 84524800,"$color":"#1C2D46"}, "id": "Ruspolimet", "name": "Ruspolimet" }, { "data":{"cap":"€265,462,000","sec": "No","$area": 265461920,"$color":"#1D3161"}, "id": "Sinarsky Tube Works-cls", "name": "Sinarsky Tube Works-cls" }, { "data":{"cap":"€106,668,548,000","sec": "No","$area": 106668548096,"$color":"#1D3260"}, "id": "Gazprom Neft Jsc-cls *", "name": "Gazprom Neft Jsc-cls *" }, { "data":{"cap":"€227,561,000","sec": "No","$area": 227560624,"$color":"#182A3B"}, "id": "Chelyabinsk Metallurgic", "name": "Chelyabinsk Metallurgic" }, { "data":{"cap":"€4,993,154,000","sec": "No","$area": 4993153536,"$color":"#1D2B33"}, "id": "Polyus Gold Ojsc", "name": "Polyus Gold Ojsc" }, { "data":{"cap":"€44,709,000","sec": "No","$area": 44708996,"$color":"#152947"}, "id": "Yaroslavnefteorgsintez-pfd", "name": "Yaroslavnefteorgsintez-pfd" }, { "data":{"cap":"€10,813,379,000","sec": "No","$area": 10813378560,"$color":"#143158"}, "id": "Severstal", "name": "Severstal" }, { "data":{"cap":"","sec": "No","$area": 1,"$color":"#152D55"}, "id": "Interural *", "name": "Interural *" }, { "data":{"cap":"€288,588,000","sec": "No","$area": 288587904,"$color":"#162E48"}, "id": "Belon", "name": "Belon" }, { "data":{"cap":"€90,838,000","sec": "No","$area": 90838216,"$color":"#1E3033"}, "id": "Solikamsk Magnesium-cls", "name": "Solikamsk Magnesium-cls" }, { "data":{"cap":"","sec": "No","$area": 1,"$color":"#193232"}, "id": "Udmurtneft-brd *", "name": "Udmurtneft-brd *" }, { "data":{"cap":"€106,668,548,000","sec": "No","$area": 106668548096,"$color":"#1E3133"}, "id": "Gazprom Oao", "name": "Gazprom Oao" }, { "data":{"cap":"","sec": "No","$area": 1,"$color":"#1C2F4C"}, "id": "Vostochnaya Oil Company-1 *", "name": "Vostochnaya Oil Company-1 *" }, { "data":{"cap":"","sec": "No","$area": 1,"$color":"#1C3150"}, "id": "Rosneft Oil Company *", "name": "Rosneft Oil Company *" }, { "data":{"cap":"€231,270,000","sec": "No","$area": 231270432,"$color":"#1E2D38"}, "id": "Yaroslavnefteorgsintez", "name": "Yaroslavnefteorgsintez" }, { "data":{"cap":"","sec": "No","$area": 1,"$color":"#142C56"}, "id": "Varyeganneftegaz-cls *", "name": "Varyeganneftegaz-cls *" }, { "data":{"cap":"","sec": "No","$area": 1,"$color":"#192862"}, "id": "Mmc Norilsk Nickel Ojsc *", "name": "Mmc Norilsk Nickel Ojsc *" }, { "data":{"cap":"","sec": "No","$area": 1,"$color":"#1C283B"}, "id": "Lukoil Oao-5 Issue *", "name": "Lukoil Oao-5 Issue *" }, { "data":{"cap":"","sec": "No","$area": 1,"$color":"#1E2E34"}, "id": "Tnk-bp Holding-pfd-cls *", "name": "Tnk-bp Holding-pfd-cls *" }, { "data":{"cap":"","sec": "No","$area": 1,"$color":"#1E2953"}, "id": "Saratovsky Nefte Zavod-us$pf *", "name": "Saratovsky Nefte Zavod-us$pf *" }, { "data":{"cap":"€10,615,080,000","sec": "No","$area": 10615079936,"$color":"#153160"}, "id": "Novolipetsk Steel (nlmk Oao)", "name": "Novolipetsk Steel (nlmk Oao)" }, { "data":{"cap":"","sec": "No","$area": 1,"$color":"#1A2A3F"}, "id": "Alrosa Co Ltd *", "name": "Alrosa Co Ltd *" }, { "data":{"cap":"","sec": "No","$area": 1,"$color":"#162A44"}, "id": "Seligdar - 002d *", "name": "Seligdar - 002d *" }, { "data":{"cap":"€31,538,571,000","sec": "No","$area": 31538571264,"$color":"#18295D"}, "id": "Tnk-bp Holding-cls", "name": "Tnk-bp Holding-cls" }, { "data":{"cap":"","sec": "No","$area": 1,"$color":"#1D313A"}, "id": "Saratovsky Nefte Zavod-cls *", "name": "Saratovsky Nefte Zavod-cls *" }, { "data":{"cap":"€9,168,959,000","sec": "No","$area": 9168959488,"$color":"#142F5B"}, "id": "Tatneft-cls", "name": "Tatneft-cls" }, { "data":{"cap":"€345,877,000","sec": "No","$area": 345876672,"$color":"#142A3B"}, "id": "Tatneft-pfd 3 Series", "name": "Tatneft-pfd 3 Series" }, { "data":{"cap":"€8,172,712,000","sec": "No","$area": 8172711936,"$color":"#1E3042"}, "id": "United Co Rusal-rdr", "name": "United Co Rusal-rdr" }, { "data":{"cap":"","sec": "No","$area": 1,"$color":"#1B2E48"}, "id": "Kosaya Gora Iron Works-cls *", "name": "Kosaya Gora Iron Works-cls *" }, { "data":{"cap":"€1,658,289,000","sec": "No","$area": 1658288640,"$color":"#19315E"}, "id": "Vsmpo-avisma Corporation", "name": "Vsmpo-avisma Corporation" }, { "data":{"cap":"€3,312,037,000","sec": "No","$area": 3312036864,"$color":"#15325C"}, "id": "Surgutneftegas-pfd", "name": "Surgutneftegas-pfd" }, { "data":{"cap":"","sec": "No","$area": 1,"$color":"#152F58"}, "id": "Mikhaylovskiy Gok *", "name": "Mikhaylovskiy Gok *" }, { "data":{"cap":"€369,233,000","sec": "No","$area": 369233408,"$color":"#1C2B3D"}, "id": "Kuzbasskaya Toplivnaya Co", "name": "Kuzbasskaya Toplivnaya Co" }, { "data":{"cap":"","sec": "No","$area": 1,"$color":"#172E32"}, "id": "Koks-brd *", "name": "Koks-brd *" }, { "data":{"cap":"€132,666,000","sec": "No","$area": 132666120,"$color":"#1A2B5B"}, "id": "Seversky Tube Works", "name": "Seversky Tube Works" }, { "data":{"cap":"","sec": "No","$area": 1,"$color":"#1A284F"}, "id": "Lukoil Oao *", "name": "Lukoil Oao *" }, { "data":{"cap":"€1,770,384,000","sec": "No","$area": 1770383744,"$color":"#162B3F"}, "id": "Southern Kuzbass Coal Co", "name": "Southern Kuzbass Coal Co" }, { "data":{"cap":"","sec": "Yes","$area": 1,"$color":"#009900"}, "id": "Mechel-pfd *", "name": "Mechel-pfd *" }, { "data":{"cap":"€3,245,646,000","sec": "Yes","$area": 3245645568,"$color":"#009900"}, "id": "Mechel", "name": "Mechel" }, { "data":{"cap":"€102,119,000","sec": "No","$area": 102118520,"$color":"#1C2C53"}, "id": "Chelyabinsk Zinc Plant", "name": "Chelyabinsk Zinc Plant" }, { "data":{"cap":"","sec": "No","$area": 1,"$color":"#1D2D3D"}, "id": "Slavneft-megionneft-cls-pfd *", "name": "Slavneft-megionneft-cls-pfd *" }, { "data":{"cap":"","sec": "No","$area": 1,"$color":"#192E5B"}, "id": "Chusovskoy Metallurgical-cls *", "name": "Chusovskoy Metallurgical-cls *" } ] }; //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(); }); }