// HELP ---------------------------------------------------- // pre kazde dalsie canvas - treba spustit "spustiDraving(idcanvas)" , pozor pre IE sa spusta zvlast // - treba pridat case vo funkcii "spustiDraving"; // ---------------------------------------------------------- // toto sa spusti po nacitani stranky window.onload = function() { /* * Only proceed if browser is IE 6 or later (as all other major browsers * support canvas out of the box there is no need to try to emulate for * them, and besides only IE supports VML anyway. */ var ie = navigator.appVersion.match(/MSIE (\d\.\d)/); var opera = (navigator.userAgent.toLowerCase().indexOf("opera") != -1); if ((!ie) || (ie[1] < 6) || (opera)) { spustiDraving('distributori-map'); } else { // inicial;izacia canvas pre IE ieCanvasInit('/js/iecanvas.htc'); window.setTimeout('spustiDraving(\'distributori-map\');',500); } } // objekty slenecnepolia var drawings=new Array(); // tato funkcia tu musi byt kvoli IE -- a timeoutu function spustiDraving(identif) { // novy objekt drawings[identif]=new slnecnepolia(); // zadanie canvas id drawings[identif].setCanvasId(identif); // pridanie stylov drawings[identif].addStyle('hover',"rgb(0,0,0)",0.5); switch (identif) { case 'distributori-map': // pridat budovy // pridat budovu - id,coords drawings[identif].addArea('distribucne-centrum-1','297,15,297,26,308,36,306,39,306,41,312,43,317,47,324,41,325,50,325,55,326,61,320,71,320,76,314,72,309,74,301,70,298,70,291,79,286,80,284,84,289,87,286,95,284,100,279,108,279,116,282,120,272,130,265,127,245,129,241,133,240,139,242,146,236,151,227,148,221,152,219,156,213,160,209,168,203,170,196,175,187,181,187,188,192,194,189,197,191,200,194,205,193,210,190,215,195,214,201,214,206,210,210,203,218,209,221,215,224,222,222,227,220,236,220,241,227,243,244,237,249,233,256,235,263,230,263,222,261,220,266,211,271,222,277,223,277,213,283,205,279,197,285,192,299,183,308,185,309,179,318,176,316,169,334,148,344,147,344,155,349,160,349,164,357,176,359,184,363,183,364,189,368,189,378,204,388,204,392,202,391,209,387,214,385,220,382,224,378,223,374,223,369,227,364,226,361,232,354,239,349,239,340,249,340,243,333,240,329,242,328,238,322,233,319,236,316,235,310,228,296,237,292,254,289,253,286,255,273,257,266,259,256,257,242,257,229,258,221,260,218,271,212,273,215,278,212,282,213,292,221,299,212,300,204,309,189,309,188,303,189,300,171,288,171,281,158,275,151,278,145,273,140,276,136,277,135,273,131,272,131,268,134,267,130,257,133,250,131,246,133,244,137,246,143,241,150,238,152,241,157,241,161,238,166,240,169,240,172,235,177,233,178,230,176,225,171,224,170,221,163,217,161,211,162,208,149,196,144,201,137,193,130,194,119,183,122,174,127,174,133,170,135,163,133,153,148,161,165,163,172,153,176,149,181,143,177,138,178,131,170,126,170,117,176,118,181,123,187,119,184,114,183,110,179,111,175,106,164,98,150,84,152,75,153,67,158,61,174,57,179,52,179,43,185,42,197,25,210,27,215,29,223,25,236,25,238,34,239,37,238,40,240,44,246,43,249,41,259,42,266,36,269,32,268,23,273,20,281,19,291,10'); // pridat budovu - id,coords drawings[identif].addArea('distribucne-centrum-2','453,54,460,47,466,45,467,43,462,38,467,36,476,41,483,32,495,35,501,40,506,38,509,37,510,38,514,35,521,33,526,37,531,37,536,46,540,45,544,42,549,46,556,48,565,60,565,67,585,76,591,79,602,80,610,86,621,86,620,95,615,99,609,106,608,115,609,121,603,120,595,122,591,112,585,109,579,116,576,118,577,123,569,125,560,123,551,119,542,118,541,133,538,135,537,136,536,137,528,141,517,136,516,135,510,126,509,120,506,112,502,107,500,102,500,97,507,91,500,85,493,84,490,81,481,78,473,74,476,82,479,89,476,89,470,94,463,97,464,100,453,89,435,91,430,85,433,77,430,68,441,69,450,69,454,66,455,59'); // pridat budovu - id,coords drawings[identif].addArea('lucia-schmidtova-1','157,274,151,277,145,272,141,276,134,276,134,272,129,273,130,266,134,265,131,258,130,254,133,249,129,246,133,241,137,244,152,235,152,240,155,240,159,238,159,236,169,239,170,233,176,232,179,230,177,225,171,224,171,220,161,216,160,212,161,208,153,198,148,195,145,200,140,198,136,192,130,194,126,188,118,181,106,190,98,185,87,172,90,166,85,164,80,171,62,182,64,185,60,193,68,195,71,202,76,207,76,213,74,218,64,222,50,230,49,235,51,242,54,244,54,249,50,249,45,254,50,263,50,266,70,280,71,284,80,289,85,297,89,298,100,307,113,309,124,309,127,307,130,309,143,308,150,312,173,311,178,308,182,308,188,309,187,303,188,298,175,290,170,287,170,280,165,279'); // pridat budovu - id,coords drawings[identif].addArea('mgr--kliment-ondrejka-1','13,189,18,181,25,176,32,176,37,175,40,177,45,176,50,174,57,167,62,163,63,160,67,164,65,168,62,171,61,171,58,175,56,177,61,182,64,185,60,189,60,193,67,195,67,198,71,201,73,206,76,208,76,213,74,217,70,218,65,220,62,224,56,226,51,228,49,231,48,234,50,241,50,242,54,244,54,248,50,248,48,252,45,253,46,257,50,263,45,263,39,261,35,259,32,256,34,252,36,248,33,246,29,243,24,240,22,237,22,231,21,226,21,221,19,220,16,219,13,215,15,212,13,208,9,205,10,194'); // pridat budovu - id,coords drawings[identif].addArea('ing--pavel-brcka--1','249,231,245,235,239,237,234,240,228,242,226,240,223,240,220,238,221,231,221,228,226,222,224,218,221,215,218,208,216,205,212,201,210,201,204,210,199,212,201,211,196,212,192,215,190,214,195,207,195,203,191,199,192,196,190,194,192,193,191,188,187,185,187,179,198,174,203,168,209,168,215,158,220,155,222,150,227,146,232,149,238,149,241,147,244,142,241,136,244,128,255,126,265,125,268,127,272,129,281,119,290,118,293,116,306,115,310,118,318,120,320,123,327,120,346,121,363,125,368,123,375,126,373,129,370,135,367,141,359,140,358,137,352,138,346,142,336,142,335,146,327,155,319,164,318,164,314,167,318,174,309,178,307,183,301,183,297,183,289,190,278,196,282,197,283,203,278,207,279,210,277,212,277,221,275,221,271,221,270,215,267,208,263,214,261,219,263,223,263,229,259,233,256,234'); // pridat budovu - id,coords drawings[identif].addArea('ladislav-martinka-1','434,169,427,171,414,177,403,178,402,187,398,192,393,198,388,203,379,203,372,193,369,187,365,187,363,180,360,184,358,181,357,174,349,162,350,158,344,152,345,146,337,146,337,143,347,143,351,139,358,139,362,142,369,141,371,134,377,127,380,124,384,120,387,120,389,125,389,130,395,132,402,137,406,140,410,148,414,146,418,149,418,155,424,159,430,159,429,155,433,149,441,145,441,142,448,140,451,141,458,139,461,133,464,128,461,124,464,119,468,119,470,119,473,121,484,123,483,131,486,133,491,130,496,126,497,121,508,121,510,126,512,130,514,134,515,135,516,149,515,151,515,158,516,163,517,165,514,167,515,167,513,174,507,169,504,169,501,172,491,175,490,177,484,177,476,179,470,184,467,180,457,178,454,179,451,176,451,176,443,175,440,172'); // pridat budovu - id,coords drawings[identif].addArea('mgr--maria-sibalova-1','544,118,555,122,559,126,578,126,578,120,588,110,594,121,601,120,606,122,606,134,602,138,602,148,593,157,582,169,581,198,581,203,578,203,575,201,561,203,556,207,550,208,547,212,541,211,533,203,531,203,530,199,524,190,524,186,518,185,514,181,513,177,515,172,513,171,519,166,514,161,515,153,514,146,514,138,524,138,530,142,541,136'); // pridat budovu - id,coords drawings[identif].addArea('peter-mahrik-1','86,135,94,131,100,128,105,126,109,120,117,116,125,117,125,106,130,101,134,101,142,101,143,100,149,91,149,82,161,95,166,99,170,101,174,104,176,108,176,108,179,111,182,110,185,116,188,117,183,122,175,115,172,116,170,116,169,125,177,131,177,135,180,144,165,161,159,161,152,161,147,159,140,156,136,152,134,156,133,159,135,168,130,170,126,173,122,176,118,181,116,183,111,185,107,191,100,187,90,176,87,172,90,168,91,166,88,164,85,163,84,164,82,171,78,171,76,174,67,177,62,182,57,176,63,173,67,167,66,160,62,160,56,167,50,173,41,177,40,174,34,176,27,176,20,176,18,165,22,161,22,156,27,151,28,145,36,139,40,133,42,130,51,124,59,127,65,131,71,133,77,129'); // pridat budovu - id,coords drawings[identif].addArea('jan-palguta-1','360,75,360,68,363,61,364,57,370,50,380,51,383,50,383,42,387,41,388,43,395,38,407,45,413,40,416,41,421,37,425,38,426,45,432,49,437,53,440,51,443,55,447,57,452,55,454,63,451,68,437,68,431,68,430,70,432,77,430,84,435,91,452,90,464,100,464,97,471,94,476,90,480,89,474,75,492,84,499,86,505,91,499,96,500,104,509,121,497,121,495,125,487,132,483,128,485,123,483,123,476,122,470,119,463,119,461,121,462,128,458,138,440,141,439,146,430,151,429,158,419,155,418,149,415,145,411,146,405,138,396,133,390,130,389,122,385,119,377,127,369,123,364,124,345,120,338,120,325,120,320,122,317,119,310,118,306,115,297,115,288,117,281,118,279,108,284,100,287,93,290,87,285,83,286,79,290,78,298,70,300,70,309,73,312,72,318,75,335,75,342,68,355,79'); break; } drawings[identif].reset(); } //-------------------------------------------------------------------------------------------------- // TRIEDY - OOP -- toto nemenit - da sa pozuit aj inde //-------------------------------------------------------------------------------------------------- // -- class slnecnepolia -- kreslenie budov do Canvas ------------------------------------- function slnecnepolia() { this._areas=new Array(); this._pernaments=new Array(); this._styles=new Array(); } slnecnepolia.prototype._name; slnecnepolia.prototype._canvasId; slnecnepolia.prototype._canvas; slnecnepolia.prototype._areas; slnecnepolia.prototype._pernaments; slnecnepolia.prototype._styles; slnecnepolia.prototype.reset = function() { if(!this._canvas) return false; cnvClear(this._canvas,this._canvasId); for (i=1;i<=this._pernaments.length;i++) if(this._pernaments[i] && this._pernaments[i]._areaId && this._areas[this._pernaments[i]._areaId]) this.drawArea(this._pernaments[i]._areaId,this._pernaments[i]._styleId); } slnecnepolia.prototype.getCanvasId = function() { return this._canvasId; } slnecnepolia.prototype.setCanvasId = function(canvasId) { this._canvasId = canvasId; var canvaselm = document.getElementById(this._canvasId); if(canvaselm) this._canvas = canvaselm.getContext('2d'); else this._canvas=false; } slnecnepolia.prototype.addArea = function(id,coords) { this._areas[id]=coords; } slnecnepolia.prototype.addStyle = function(name,color,opacity) { this._styles[name]=new styleCanvas(color,opacity); } slnecnepolia.prototype.addPernament = function(areaId,styleId) { this._pernaments[this._pernaments.length+1]=new pernament(areaId,styleId); } slnecnepolia.prototype.drawArea = function(areaId,styleId) { //alert('drawing area '+areaId); if(!this._areas[areaId]) { //alert('area '+areaId+' nie je v zozname'); return false; } if(!this._canvas) { //alert('canvas '+this._canvasId +' neexistuje'); return false; } var coords=this._areas[areaId].split(','); if(this._styles[styleId]) { var style=this._styles[styleId]._color; var opacity=this._styles[styleId]._opacity; cnvDrawShape(this._canvas,coords,style,opacity); } else alert(styleId+'nie je zadany v zozname'); } // class pernament --------------------------- function pernament(areaId,styleId) { this._areaId=areaId; this._styleId=styleId; } pernament.prototype._areaId; pernament.prototype._styleId; // class style --------------------------- function styleCanvas(color,opacity) { this._color=color; this._opacity=opacity; } styleCanvas.prototype._color; styleCanvas.prototype._opacity;