// -------------------------------------------------------- // This script made by JKLIR as. Unreal][ [http://jklir.net] // Map engine originally from Emcee Lam [http://sjsutech.com] // Licence: GNU/GPL // (c) 2011 All rights reserved // -------------------------------------------------------- var mainMap; var magnifier; var node = new Array(); var nodecount; var file_nodes = new Array(); var file_noping = new Array(); var file_links = new Array(); var file_infopoints = new Array(); var file_state = new Array(); var ann; var m1; var m2; var m3; var m4; var m5; var m6; var m7; var m8; var m9; var m1_a; var m2_a; var m3_a; var m4_a; var m5_a; var m6_a; var m7_a; var m8_a; var m9_a; var cntm; var div_paint; var div_points; var div_wave; var div_infopoint; var div_name; var div_ip; var div_status; var numoflinks = 0; var maxnumoflinks = 17; var is_ie = false; if(typeof(G_vmlCanvasManager)!='undefined') { is_ie = true; } actual_links = ""; var drawing_timer; var is_adding = true; Array.prototype.max = function() { var max = this[0]; var len = this.length; for(var i=1; i max) max = this[i]; return max; } Array.prototype.min = function() { var min = this[0]; var len = this.length; for(var i=1; i maxX) shiftedLeft = maxX; magnifierDiv.style.left = shiftedLeft + "px"; var shiftedTop = this.top + (event.clientY - this.dragStartTop); if (shiftedTop < minY) shiftedTop = minY; // map is not infinite if (shiftedTop > maxY) shiftedTop = maxY; magnifierDiv.style.top = shiftedTop + "px"; mainMap.setViewPort(); } } Magnifier.prototype.stopMove = function (event) { this.f_dragging = false; is_adding = true; checkLinks(); } Magnifier.prototype.setSize = function (innerDivWidth, innerDivHeight) { var magnifierWidth = Math.round((magres_x * inres_x) / innerDivWidth) - 2; // 200 * 700px /* We subtract 2 because the borders are 1 pixel each */ var magnifierHeight = Math.round((magres_y * inres_y) / innerDivHeight) - 2; // 141 * 500px /* We subtract 2 because the borders are 1 pixel each */ var magnifierDiv = document.getElementById("magnifier"); magnifierDiv.style.width = magnifierWidth + "px"; magnifierDiv.style.height = magnifierHeight + "px"; document.getElementById("wrapper").style.width = inres_x + document.getElementById("menuset").clientWidth + 18 + "px"; } Magnifier.prototype.setPosition = function () { var innerDiv = document.getElementById("innerDiv"); var innerDivWidth = innerDiv.clientWidth; var innerDivHeight = innerDiv.clientHeight; var innerDivLeft = innerDiv.offsetLeft; var innerDivTop = innerDiv.offsetTop; this.left = Math.round(Math.abs(innerDivLeft) * magres_x / innerDivWidth); this.top = Math.round(Math.abs(innerDivTop) * magres_y / innerDivHeight); // alter magnifier var magnifierDiv = this.div; magnifierDiv.style.left = this.left + "px"; magnifierDiv.style.top = this.top + "px"; } function MainMap (zoomfirst) { var this1 = this; // view port is the visible portion of the main map this.viewPortWidth = inres_x; //500 this.viewPortHeight = inres_y; //400 this.tileSize = 256; this.f_dragging = false; this.innerDiv = document.getElementById("innerDiv"); this.innerDiv.style.cursor = "url('grab.cur'), default"; var outerDiv = document.getElementById("outerDiv"); this.outerDiv = outerDiv; outerDiv.style.width = inres_x + "px"; outerDiv.style.height = inres_y + "px"; var underMap = document.getElementById("underMap"); underMap.style.width = (inres_x - 4) + "px"; outerDiv.onmousedown = function(event) { return this1.startMove(event) }; outerDiv.onmousemove = function(event) { return this1.processMove(event) }; outerDiv.onmouseup = function(event) { return this1.stopMove(event) }; outerDiv.ondblclick = function(event) { return this1.doubleClick() }; outerDiv.ondragstart = function() { return false; } // for IE if(zoomfirst==eq_mini) { zf = 0; } else if(zoomfirst==eq_medi) { zf = 1; } else if(zoomfirst==eq_high) { zf = 2; } else if(zoomfirst==eq_orig) { zf = 3; } else { zf = 0; } this.zoom = zf; this.zoomDim = [ { width:parseInt(full_x * eq_mini), height:parseInt(full_y * eq_mini), size:1, nasobek:eq_mini, numoflinks:17 }, { width:parseInt(full_x * eq_medi), height:parseInt(full_y * eq_medi), size:2, nasobek:eq_medi, numoflinks:12 }, { width:parseInt(full_x * eq_high), height:parseInt(full_y * eq_high), size:3, nasobek:eq_high, numoflinks:10 }, { width:parseInt(full_x * eq_orig), height:parseInt(full_y * eq_orig), size:4, nasobek:eq_orig, numoflinks:7 }, ] var zoomElt = this.zoomDim[this.zoom]; this.setInnerDivSize (zoomElt.width, zoomElt.height, zoomElt.size, (parseInt(zoomfirst*1000)/10)); document.getElementById("zoom"+this.zoom).className = "active"; var innerDiv = document.getElementById("innerDiv"); innerDiv.style.left = -(start_left * start_mul) + "px"; innerDiv.style.top = -(start_top * start_mul) + "px"; magnifier.setPosition(); this.checkTiles(); } MainMap.prototype.startMove = function (event) { // for IE if (!event) event = window.event; this.dragStartLeft = event.clientX; this.dragStartTop = event.clientY; var innerDiv = this.innerDiv; innerDiv.style.cursor = "url('grabbing.cur'), default"; this.top = innerDiv.offsetTop; this.left = innerDiv.offsetLeft; this.f_dragging = true; is_adding = true; window.clearInterval(drawing_timer); drawing_timer = window.setInterval(checkLinks, 1100); return false; } MainMap.prototype.processMove = function (event) { var zoomElt = this.zoomDim[this.zoom]; var maxY = 0; var minY = -(zoomElt.height - this.viewPortHeight); var maxX = 0; var minX = -(zoomElt.width - this.viewPortWidth); if (!event) event = window.event; // for IE var innerDiv = this.innerDiv; if (this.f_dragging) { var shiftedTop = this.top + (event.clientY - this.dragStartTop); if (shiftedTop > maxY) shiftedTop = maxY; // map is not infinite if (shiftedTop < minY) shiftedTop = minY; innerDiv.style.top = shiftedTop + "px"; var shiftedLeft = this.left + (event.clientX - this.dragStartLeft); if (shiftedLeft > maxX) shiftedLeft = maxX; // map is not infinite if (shiftedLeft < minX) shiftedLeft = minX; innerDiv.style.left = shiftedLeft + "px"; this.checkTiles(); magnifier.setPosition(); } var konst = 0; var nasobek = this.zoomDim[this.zoom].nasobek; if (is_ie) { konst = -2; } var outerDiv = this.outerDiv; var infoDiv = document.getElementById("infoDiv"); if(this.f_dragging) { infoDiv.innerHTML = parseInt((Math.abs(shiftedLeft) + event.clientX - outerDiv.offsetLeft + konst)/nasobek) + " x " + parseInt((Math.abs(shiftedTop) + event.clientY - outerDiv.offsetTop + konst)/nasobek); } else { infoDiv.innerHTML = parseInt((Math.abs(parseInt(innerDiv.style.left)) + event.clientX - outerDiv.offsetLeft + konst)/nasobek) + " x " + parseInt((Math.abs(parseInt(innerDiv.style.top)) + event.clientY - outerDiv.offsetTop + konst)/nasobek); } } MainMap.prototype.checkZoom = function () { window.clearInterval(drawing_timer); var zoomElt = this.zoomDim[this.zoom]; var maxY = 0; var minY = -(zoomElt.height - this.viewPortHeight); var maxX = 0; var minX = -(zoomElt.width - this.viewPortWidth); var chcky = 0; var chckx = 0; var innerDiv = this.innerDiv; var shiftedTop = innerDiv.offsetTop; if (shiftedTop > maxY) { shiftedTop = maxY; chcky = 1; } // map is not infinite if (shiftedTop < minY) { shiftedTop = minY; chcky = 1; } if (chcky == 1) innerDiv.style.top = shiftedTop + "px"; var shiftedLeft = innerDiv.offsetLeft; if (shiftedLeft > maxX) { shiftedLeft = maxX; chckx = 1; }// map is not infinite if (shiftedLeft < minX) { shiftedLeft = minX; chckx = 1; } if (chckx == 1) innerDiv.style.left = shiftedLeft + "px"; magnifier.setPosition(); document.getElementById("zoom0").className = ""; document.getElementById("zoom1").className = ""; document.getElementById("zoom2").className = ""; document.getElementById("zoom3").className = ""; document.getElementById("zoom"+this.zoom).className = "active"; } MainMap.prototype.checkTiles = function () { var innerDiv = this.innerDiv; var tileSize = this.tileSize; var visibleTiles = this.getVisibleTiles(); var visibleTilesMap = {}; var i; var size = this.zoomDim[this.zoom].size; for(i=0;i 0) { innerDiv.removeChild(imgs[0]); } var oldLeft = innerDiv.offsetLeft; var oldTop = innerDiv.offsetTop; var wdth = Math.round(((magres_x * inres_x) / newZ.width) - 2); // 200 * 700px var hght = Math.round(((magres_y * inres_y) / newZ.height) - 2); // 141 * 500px var wdth2 = Math.round(((magres_x * inres_x) / oldZ.width) - 2); // 200 * 700px var hght2 = Math.round(((magres_y * inres_y) / oldZ.height) - 2); // 141 * 500px innerDiv.style.left = Math.round(Math.round(newZ.width * oldLeft / oldZ.width) + ((wdth-wdth2)*4)) + "px"; innerDiv.style.top = Math.round(Math.round(newZ.height * oldTop / oldZ.height) + ((hght-hght2)*4)) + "px"; this.zoom = newZoom; // set the global zoom this.setInnerDivSize(newZ.width, newZ.height, newZ.size, (newZ.nasobek*1000)/10); maxnumoflinks = newZ.numoflinks; this.checkZoom(); this.checkTiles(); deleteNames(); canvasInit(newZ.nasobek); } MainMap.prototype.doubleClick = function () { if (this.zoom == 3) return; this.setZoom(this.zoom + 1); } MainMap.prototype.addNewLinks = function (minx, maxx, miny, maxy, linkname) { var innerDiv = this.innerDiv; var frameLeft = -innerDiv.offsetLeft; var frameTop = -innerDiv.offsetTop; var frameRight = frameLeft + inres_x; var frameBottom = frameTop + inres_y; var regexp = new RegExp(linkname + ' ', 'gi'); if(!regexp.test(actual_links)) { return (minx <= frameRight && frameLeft <= maxx && miny <= frameBottom && frameTop <= maxy); } } MainMap.prototype.removeOldLinks = function (minx, maxx, miny, maxy, linkname) { var innerDiv = this.innerDiv; var frameLeft = -innerDiv.offsetLeft; var frameTop = -innerDiv.offsetTop; var frameRight = frameLeft + inres_x; var frameBottom = frameTop + inres_y; var regexp = new RegExp(linkname + ' ', 'gi'); if(regexp.test(actual_links) && numoflinks>=maxnumoflinks) { if(!(minx <= frameRight && frameLeft <= maxx && miny <= frameBottom && frameTop <= maxy)) { actual_links = actual_links.replace(regexp, ""); var linkDOM = document.getElementById(linkname); if(is_ie) { linkDOM.parentNode.parentNode.removeChild(linkDOM.parentNode); } else { linkDOM.parentNode.removeChild(linkDOM); } numoflinks--; return; } } } function canvasInit(nasobek) { is_adding = true; actual_links = ""; numoflinks = 0; div_paint = document.getElementById("paint"); div_points = document.getElementById("mapstats_points"); div_wave = document.getElementById("mapstats_wave"); div_infopoint = document.getElementById("mapstats_infopoint"); div_name = document.getElementById("mapstats_name"); div_ip = document.getElementById("mapstats_ip"); div_status = document.getElementById("mapstats_status"); div_paint.style.width = parseInt(full_x*nasobek) + "px"; div_paint.style.height = parseInt(full_y*nasobek) + "px"; var mapstats_over = document.getElementById("mapstats_over"); mapstats_over.style.width = parseInt(full_x*nasobek) + "px"; mapstats_over.style.height = parseInt(full_y*nasobek) + "px"; ann = nasobek; var pozdrav2 = new Array(); var pozdr = new Array(); var pozdrav = file_nodes.split('\n'); var pozdrav1 = file_noping.split('\n'); var a_cnt = 0; var p0count = pozdrav.length; var p1count = pozdrav1.length; for(a=0;a0) { pozdrav5 = file_infopoints.split('\n'); for(d=0;d0)) { drawLegend(); legend.style.display = "block"; } else { legend.style.display = "none"; } } function drawLink(pos, size, nas, color) { var linkname = "canvas" + pos.replace(/(#|&|_|\.|\:)/gi, ""); var points = new Array(); var posxy = new Array(); var coordinates = new Array(); var cor_x = new Array(); var cor_y = new Array(); points = pos.split('#'); var reg=/(\d+)&(\d+)/; for(i=0;i0) { pozdrav3 = file_links.split('\n'); var p3count = pozdrav3.length; for(a=0;a'; div_points.innerHTML += text; } function drawAP(xn, yn, nas) { xn = parseInt((xn*nas)-31); yn = parseInt((yn*nas)-17); var text = '
'; div_wave.innerHTML += text; } function drawClient(xc, yc, nas) { xc = parseInt((xc*nas)-7); yc = parseInt((yc*nas)-7); var text = '
'; div_wave.innerHTML += text; } function drawSwitch(xs, ys, nas) { xs = parseInt((xs*nas)-6); ys = parseInt((ys*nas)-6); var text = '
'; div_wave.innerHTML += text; } function drawInfoPoint(xl, yl, nas) { xl = parseInt((xl*nas)-7); yl = parseInt((yl*nas)-7); var text = '
'; div_wave.innerHTML += text; } function drawInfo(txt, xa, ya, nas) { xa = parseInt((xa*nas)+6); ya = parseInt((ya*nas)-13); var text = '
' + txt + '
'; div_infopoint.innerHTML += text; } function drawName(txt, xa, ya, nas) { xa = parseInt((xa*nas)+6); ya = parseInt((ya*nas)-13); var text = '
' + txt + '
'; div_name.innerHTML += text; } function drawIP(txt, xb, yb, nas) { xb = parseInt((xb*nas)+6); yb = parseInt((yb*nas)-1); var text = '
' + txt + '
'; div_ip.innerHTML += text; } function drawStatus(txt, xc, yc, nas) { xc = parseInt((xc*nas)+6); yc = parseInt((yc*nas)+11); var text = '
' + txt + '
'; div_status.innerHTML += text; } function drawLegendText(txt) { document.getElementById("mapstats_legend").innerHTML = '
' + txt + '
'; } function drawLegend() { var epsilon; var cislo = 0; var name = ""; var paintlegend = document.getElementById('paintlegend'); paintlegend.height = (((cntm-1) * 12)+13); paintlegend.width = "25"; var ctx = paintlegend.getContext('2d'); ctx.clearRect(0,0,25,((cntm-1) * 12)+13); if(m1==1) { epsilon = ((cislo*12)+5); drawLegendLink(epsilon,wifi_client,2.7); name = name + name1 + "
"; cislo++; } if(m2==1) { epsilon = ((cislo*12)+5); drawLegendLink(epsilon,wifi_backbone,4.1); name = name + name2 + "
"; cislo++; } if(m3==1) { epsilon = ((cislo*12)+5); drawLegendLink(epsilon,eth_100,4.1); name = name + name3 + "
"; cislo++; } if(m4==1) { epsilon = ((cislo*12)+5); drawLegendLink(epsilon,fso,4.1); name = name + name4 + "
"; cislo++; } if(m5==1) { epsilon = ((cislo*12)+5); drawLegendLink(epsilon,fso_backup,4.1); name = name + name5 + "
"; cislo++; } if(m6==1) { epsilon = ((cislo*12)+5); drawLegendLink(epsilon,ghz5,4.1); name = name + name6 + "
"; cislo++; } if(m7==1) { epsilon = ((cislo*12)+5); drawLegendLink(epsilon,ghz10,4.1); name = name + name7 + "
"; cislo++; } if(m8==1) { epsilon = ((cislo*12)+5); drawLegendLink(epsilon,fiber,4.1); name = name + name8 + "
"; cislo++; } if(m9==1) { epsilon = ((cislo*12)+5); drawLegendLink(epsilon,other,4.1); name = name + name9 + "
"; cislo++; } if(m1_a==1) { epsilon = ((cislo*12)+5); drawLegendINPLink(epsilon,wifi_client_a,2.7); name = name + name1 + " " + inp + "
"; cislo++; } if(m2_a==1) { epsilon = ((cislo*12)+5); drawLegendINPLink(epsilon,wifi_backbone_a,4.1); name = name + name2 + " " + inp + "
"; cislo++; } if(m3_a==1) { epsilon = ((cislo*12)+5); drawLegendINPLink(epsilon,eth_100_a,4.1); name = name + name3 + " " + inp + "
"; cislo++; } if(m4_a==1) { epsilon = ((cislo*12)+5); drawLegendINPLink(epsilon,fso_a,4.1); name = name + name4 + " " + inp + "
"; cislo++; } if(m5_a==1) { epsilon = ((cislo*12)+5); drawLegendINPLink(epsilon,fso_backup_a,4.1); name = name + name5 + " " + inp + "
"; cislo++; } if(m6_a==1) { epsilon = ((cislo*12)+5); drawLegendINPLink(epsilon,ghz5_a,4.1); name = name + name6 + " " + inp + "
"; cislo++; } if(m7_a==1) { epsilon = ((cislo*12)+5); drawLegendINPLink(epsilon,ghz10_a,4.1); name = name + name7 + " " + inp + "
"; cislo++; } if(m8_a==1) { epsilon = ((cislo*12)+5); drawLegendINPLink(epsilon,fiber_a,4.1); name = name + name8 + " " + inp + "
"; cislo++; } if(m9_a==1) { epsilon = ((cislo*12)+5); drawLegendINPLink(epsilon,other_a,4.1); name = name + name9 + " " + inp + "
"; } drawLegendText(name); } function drawLegendLink(yg,color,size) { var ctx = document.getElementById('paintlegend').getContext('2d'); ctx.strokeStyle = "rgb(20, 20, 20)"; ctx.lineWidth = size+1; ctx.beginPath(); ctx.moveTo(1,yg); ctx.lineTo(24,yg); ctx.stroke(); ctx.strokeStyle = "rgb(0, 0, 0)"; ctx.lineWidth = size; ctx.beginPath(); ctx.moveTo(1,yg); ctx.lineTo(24,yg); ctx.stroke(); ctx.strokeStyle = color; ctx.lineWidth = size-1; ctx.beginPath(); ctx.moveTo(1,yg); ctx.lineTo(24,yg); ctx.stroke(); } function drawLegendINPLink(yg,color,size) { var ctx = document.getElementById('paintlegend').getContext('2d'); ctx.strokeStyle = "rgba(255, 255, 255, 0.5)"; ctx.lineWidth = size; ctx.beginPath(); ctx.moveTo(1,yg); ctx.lineTo(24,yg); ctx.stroke(); ctx.strokeStyle = "rgba(0, 0, 0, 0.1)"; ctx.lineWidth = size; ctx.beginPath(); ctx.moveTo(1,yg); ctx.lineTo(24,yg); ctx.stroke(); ctx.strokeStyle = color; ctx.lineWidth = size-0.5; ctx.beginPath(); ctx.moveTo(1,yg); ctx.lineTo(24,yg); ctx.stroke(); } function clearMap() { div_paint.innerHTML = ""; } function node2sour(name, pos) { var ok = 0; for(k=0;k WebSVN - mapstats - Blame - Rev 9 - /mapstats.js
  jablonka.czprosek.czf

mapstats

Subversion Repositories:
[/] [mapstats.js] - Blame information for rev 9

 

Line No. Rev Author Line

Powered by WebSVN 2.2.1