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":"#1D2948"}, "id": "Seligdar-cls *", "name": "Seligdar-cls *" }, { "data":{"cap":"€29,546,506,000","sec": "No","$area": 29546506240,"$color":"#1E2B52"}, "id": "Novatek Oao", "name": "Novatek Oao" }, { "data":{"cap":"€102,119,000","sec": "No","$area": 102118520,"$color":"#142853"}, "id": "Chelyabinsk Zinc Plant *", "name": "Chelyabinsk Zinc Plant *" }, { "data":{"cap":"€1,179,188,000","sec": "No","$area": 1179188480,"$color":"#152E3D"}, "id": "Slavneft-megionneftegaz", "name": "Slavneft-megionneftegaz" }, { "data":{"cap":"","sec": "No","$area": 1,"$color":"#1E3053"}, "id": "Chusovskoy Metallurgical-cls *", "name": "Chusovskoy Metallurgical-cls *" }, { "data":{"cap":"","sec": "No","$area": 1,"$color":"#1A2B56"}, "id": "Kuzocm - Brd *", "name": "Kuzocm - Brd *" }, { "data":{"cap":"€2,327,872,000","sec": "No","$area": 2327872000,"$color":"#1A295F"}, "id": "Raspadskaya", "name": "Raspadskaya" }, { "data":{"cap":"€2,191,640,000","sec": "No","$area": 2191640320,"$color":"#18284A"}, "id": "Ak Transneft Oao-pref", "name": "Ak Transneft Oao-pref" }, { "data":{"cap":"","sec": "No","$area": 1,"$color":"#192B60"}, "id": "Nizhnevartovskneftegaz-cls *", "name": "Nizhnevartovskneftegaz-cls *" }, { "data":{"cap":"","sec": "No","$area": 1,"$color":"#1B2A57"}, "id": "Oil Technology Overseas *", "name": "Oil Technology Overseas *" }, { "data":{"cap":"€973,241,000","sec": "No","$area": 973240960,"$color":"#1B2F59"}, "id": "Suek-krasnoyarsk Jsc", "name": "Suek-krasnoyarsk Jsc" }, { "data":{"cap":"€102,291,000","sec": "No","$area": 102290768,"$color":"#1E2943"}, "id": "Ashinsky Metallurgical", "name": "Ashinsky Metallurgical" }, { "data":{"cap":"","sec": "No","$area": 1,"$color":"#1C2963"}, "id": "Udmurtneft-pfd-cls *", "name": "Udmurtneft-pfd-cls *" }, { "data":{"cap":"","sec": "No","$area": 1,"$color":"#1E2A42"}, "id": "Surgutneftegas *", "name": "Surgutneftegas *" }, { "data":{"cap":"€325,657,000","sec": "No","$area": 325657280,"$color":"#1E2A4A"}, "id": "Korshunovsky Gok", "name": "Korshunovsky Gok" }, { "data":{"cap":"","sec": "No","$area": 1,"$color":"#1E2F61"}, "id": "Alrosa-nurba-cls *", "name": "Alrosa-nurba-cls *" }, { "data":{"cap":"€2,064,979,000","sec": "No","$area": 2064979200,"$color":"#183048"}, "id": "Tmk Oao", "name": "Tmk Oao" }, { "data":{"cap":"€904,247,000","sec": "No","$area": 904246912,"$color":"#1D2836"}, "id": "Moscow Oil Refinery", "name": "Moscow Oil Refinery" }, { "data":{"cap":"€1,043,401,000","sec": "No","$area": 1043400832,"$color":"#1A2D48"}, "id": "Bashneft-pfd-cls", "name": "Bashneft-pfd-cls" }, { "data":{"cap":"","sec": "No","$area": 1,"$color":"#1B2C57"}, "id": "Lenzoloto-pfd *", "name": "Lenzoloto-pfd *" }, { "data":{"cap":"","sec": "No","$area": 1,"$color":"#192B53"}, "id": "Electrozinc Ojsc-cls *", "name": "Electrozinc Ojsc-cls *" }, { "data":{"cap":"€3,673,748,000","sec": "No","$area": 3673748480,"$color":"#14284D"}, "id": "Magnitogorsk Iron&steel", "name": "Magnitogorsk Iron&steel" }, { "data":{"cap":"€6,013,674,000","sec": "No","$area": 6013673984,"$color":"#152B4B"}, "id": "Bashneft-cls", "name": "Bashneft-cls" }, { "data":{"cap":"€130,366,000","sec": "No","$area": 130365520,"$color":"#1B293B"}, "id": "Lenzoloto", "name": "Lenzoloto" }, { "data":{"cap":"","sec": "No","$area": 1,"$color":"#1C3045"}, "id": "Sredneuralsky Copper Fac-brd *", "name": "Sredneuralsky Copper Fac-brd *" }, { "data":{"cap":"","sec": "No","$area": 1,"$color":"#1E2D56"}, "id": "Chernogorneft *", "name": "Chernogorneft *" }, { "data":{"cap":"","sec": "No","$area": 1,"$color":"#192A3D"}, "id": "Vareganneftegaz-pfd *", "name": "Vareganneftegaz-pfd *" }, { "data":{"cap":"€5,162,118,000","sec": "No","$area": 5162118144,"$color":"#17315E"}, "id": "Polymetal-cls", "name": "Polymetal-cls" }, { "data":{"cap":"","sec": "No","$area": 1,"$color":"#183261"}, "id": "Buryatzoloto *", "name": "Buryatzoloto *" }, { "data":{"cap":"€694,222,000","sec": "No","$area": 694222080,"$color":"#1C2B3F"}, "id": "Chelyabinsk Pipe Works", "name": "Chelyabinsk Pipe Works" }, { "data":{"cap":"","sec": "No","$area": 1,"$color":"#1C2B5F"}, "id": "Yakutsk Fuel-energy Co *", "name": "Yakutsk Fuel-energy Co *" }, { "data":{"cap":"€84,525,000","sec": "No","$area": 84524800,"$color":"#1A2845"}, "id": "Ruspolimet", "name": "Ruspolimet" }, { "data":{"cap":"€265,462,000","sec": "No","$area": 265461920,"$color":"#142D54"}, "id": "Sinarsky Tube Works-cls", "name": "Sinarsky Tube Works-cls" }, { "data":{"cap":"€106,668,548,000","sec": "No","$area": 106668548096,"$color":"#142E4A"}, "id": "Gazprom Neft Jsc-cls *", "name": "Gazprom Neft Jsc-cls *" }, { "data":{"cap":"€227,561,000","sec": "No","$area": 227560624,"$color":"#193132"}, "id": "Chelyabinsk Metallurgic", "name": "Chelyabinsk Metallurgic" }, { "data":{"cap":"€4,993,154,000","sec": "No","$area": 4993153536,"$color":"#182E44"}, "id": "Polyus Gold Ojsc", "name": "Polyus Gold Ojsc" }, { "data":{"cap":"€44,709,000","sec": "No","$area": 44708996,"$color":"#1D2D3D"}, "id": "Yaroslavnefteorgsintez-pfd", "name": "Yaroslavnefteorgsintez-pfd" }, { "data":{"cap":"€10,813,379,000","sec": "No","$area": 10813378560,"$color":"#142858"}, "id": "Severstal", "name": "Severstal" }, { "data":{"cap":"","sec": "No","$area": 1,"$color":"#19283F"}, "id": "Interural *", "name": "Interural *" }, { "data":{"cap":"€288,588,000","sec": "No","$area": 288587904,"$color":"#1E314D"}, "id": "Belon", "name": "Belon" }, { "data":{"cap":"€90,838,000","sec": "No","$area": 90838216,"$color":"#1D3238"}, "id": "Solikamsk Magnesium-cls", "name": "Solikamsk Magnesium-cls" }, { "data":{"cap":"","sec": "No","$area": 1,"$color":"#1D2D48"}, "id": "Udmurtneft-brd *", "name": "Udmurtneft-brd *" }, { "data":{"cap":"€106,668,548,000","sec": "No","$area": 106668548096,"$color":"#1B324B"}, "id": "Gazprom Oao", "name": "Gazprom Oao" }, { "data":{"cap":"","sec": "No","$area": 1,"$color":"#1D2F63"}, "id": "Vostochnaya Oil Company-1 *", "name": "Vostochnaya Oil Company-1 *" }, { "data":{"cap":"","sec": "No","$area": 1,"$color":"#1B3135"}, "id": "Rosneft Oil Company *", "name": "Rosneft Oil Company *" }, { "data":{"cap":"€231,270,000","sec": "No","$area": 231270432,"$color":"#152B58"}, "id": "Yaroslavnefteorgsintez", "name": "Yaroslavnefteorgsintez" }, { "data":{"cap":"","sec": "No","$area": 1,"$color":"#1C2947"}, "id": "Varyeganneftegaz-cls *", "name": "Varyeganneftegaz-cls *" }, { "data":{"cap":"","sec": "No","$area": 1,"$color":"#163162"}, "id": "Mmc Norilsk Nickel Ojsc *", "name": "Mmc Norilsk Nickel Ojsc *" }, { "data":{"cap":"","sec": "No","$area": 1,"$color":"#1B2F4E"}, "id": "Lukoil Oao-5 Issue *", "name": "Lukoil Oao-5 Issue *" }, { "data":{"cap":"","sec": "No","$area": 1,"$color":"#152D61"}, "id": "Tnk-bp Holding-pfd-cls *", "name": "Tnk-bp Holding-pfd-cls *" }, { "data":{"cap":"","sec": "No","$area": 1,"$color":"#172B47"}, "id": "Saratovsky Nefte Zavod-us$pf *", "name": "Saratovsky Nefte Zavod-us$pf *" }, { "data":{"cap":"€10,615,080,000","sec": "No","$area": 10615079936,"$color":"#152C4C"}, "id": "Novolipetsk Steel (nlmk Oao)", "name": "Novolipetsk Steel (nlmk Oao)" }, { "data":{"cap":"","sec": "No","$area": 1,"$color":"#192E54"}, "id": "Alrosa Co Ltd *", "name": "Alrosa Co Ltd *" }, { "data":{"cap":"","sec": "No","$area": 1,"$color":"#1C2D47"}, "id": "Seligdar - 002d *", "name": "Seligdar - 002d *" }, { "data":{"cap":"€31,538,571,000","sec": "No","$area": 31538571264,"$color":"#1A2F46"}, "id": "Tnk-bp Holding-cls", "name": "Tnk-bp Holding-cls" }, { "data":{"cap":"","sec": "No","$area": 1,"$color":"#1C2F55"}, "id": "Saratovsky Nefte Zavod-cls *", "name": "Saratovsky Nefte Zavod-cls *" }, { "data":{"cap":"€9,168,959,000","sec": "No","$area": 9168959488,"$color":"#192C46"}, "id": "Tatneft-cls", "name": "Tatneft-cls" }, { "data":{"cap":"€345,877,000","sec": "No","$area": 345876672,"$color":"#192C63"}, "id": "Tatneft-pfd 3 Series", "name": "Tatneft-pfd 3 Series" }, { "data":{"cap":"€8,172,712,000","sec": "No","$area": 8172711936,"$color":"#172B62"}, "id": "United Co Rusal-rdr", "name": "United Co Rusal-rdr" }, { "data":{"cap":"","sec": "No","$area": 1,"$color":"#162F3A"}, "id": "Kosaya Gora Iron Works-cls *", "name": "Kosaya Gora Iron Works-cls *" }, { "data":{"cap":"€1,658,289,000","sec": "No","$area": 1658288640,"$color":"#1C2C41"}, "id": "Vsmpo-avisma Corporation", "name": "Vsmpo-avisma Corporation" }, { "data":{"cap":"€3,312,037,000","sec": "No","$area": 3312036864,"$color":"#1C295F"}, "id": "Surgutneftegas-pfd", "name": "Surgutneftegas-pfd" }, { "data":{"cap":"","sec": "No","$area": 1,"$color":"#183043"}, "id": "Mikhaylovskiy Gok *", "name": "Mikhaylovskiy Gok *" }, { "data":{"cap":"€369,233,000","sec": "No","$area": 369233408,"$color":"#1D2D3C"}, "id": "Kuzbasskaya Toplivnaya Co", "name": "Kuzbasskaya Toplivnaya Co" }, { "data":{"cap":"","sec": "No","$area": 1,"$color":"#1A2F55"}, "id": "Koks-brd *", "name": "Koks-brd *" }, { "data":{"cap":"€132,666,000","sec": "No","$area": 132666120,"$color":"#1C2938"}, "id": "Seversky Tube Works", "name": "Seversky Tube Works" }, { "data":{"cap":"","sec": "No","$area": 1,"$color":"#14285C"}, "id": "Lukoil Oao *", "name": "Lukoil Oao *" }, { "data":{"cap":"€1,770,384,000","sec": "No","$area": 1770383744,"$color":"#163061"}, "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":"#1E2E5F"}, "id": "Chelyabinsk Zinc Plant", "name": "Chelyabinsk Zinc Plant" }, { "data":{"cap":"","sec": "No","$area": 1,"$color":"#182E44"}, "id": "Slavneft-megionneft-cls-pfd *", "name": "Slavneft-megionneft-cls-pfd *" }, { "data":{"cap":"","sec": "No","$area": 1,"$color":"#172E51"}, "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(); }); }