// 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('small-buildings'); spustiDraving('big-buildings'); spustiDraving('large-building'); spustiDraving('content-build'); spustiDraving('flats'); } else { // inicial;izacia canvas pre IE ieCanvasInit('/js/iecanvas.htc'); window.setTimeout('spustiDraving(\'small-buildings\');',500); window.setTimeout('spustiDraving(\'big-buildings\');',500); window.setTimeout('spustiDraving(\'large-building\');',500); window.setTimeout('spustiDraving(\'content-build\');',500); window.setTimeout('spustiDraving(\'flats\');',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('select',"rgb(221,118,44)",0.6); drawings[identif].addStyle('hover',"rgb(221,118,44)",0.5); drawings[identif].addStyle('select-floor',"rgb(96,118,149)",0.7); drawings[identif].addStyle('free-flat',"rgb(62, 108, 60)",0.0); drawings[identif].addStyle('reserved-flat',"rgb(62, 108, 60)",0.5); drawings[identif].addStyle('sold-flat',"rgb(223, 117, 44)",0.8); drawings[identif].addStyle('hover-flat',"rgb(221,118,44)",0.3); switch (identif) { case 'small-buildings': // pridat budovy // pridat budovu - id,coords drawings[identif].addArea('a1-a2','102,0,109,1,121,4,119,6,137,9,142,7,153,9,154,13,166,16,165,18,169,18,164,20,165,24,171,24,171,54,120,83,119,87,107,97,103,96,90,106,70,94,64,97,48,88,47,80,48,75,39,73,33,77,12,67,6,54,11,52,8,33,5,30,11,30,11,27,40,18,58,25,63,25,75,28,75,13,78,10,81,10'); // pridat budovu - id,coords drawings[identif].addArea('b','197,36,229,42,228,55,232,57,225,80,196,145,191,144,184,158,177,156,175,161,139,143,144,109,139,106,144,104,147,100,152,101,154,96,145,94,169,69,167,68,168,62,181,47,187,47'); break; case 'big-buildings': drawings[identif].addArea('a1-a2158-large','101,20,136,19,150,25,148,27,171,35,184,31,223,44,221,20,485,20,485,26,505,32,504,44,502,46,502,56,503,57,502,66,500,68,499,78,500,79,498,120,481,127,481,130,457,145,449,149,351,209,351,211,350,211,350,214,310,239,310,239,264,268,210,234,192,245,147,219,142,194,116,180,101,190,50,162,47,150,45,148,43,139,41,132,20,120,19,113,30,107,38,111,25,58,20,51,20,49,33,48,33,40'); drawings[identif].addArea('b160-large','424,234,488,162,490,156,486,156,490,150,490,142,534,94,542,97,568,68,574,69,577,66,669,82,669,87,683,89,668,122,676,124,662,181,658,195,580,372,417,372,418,281,428,270,418,265,431,251,440,254,447,246,447,241'); break; case 'large-building': drawings[identif].addArea('podzemne-podlazie161','157,422,163,433,208,433,258,405,306,379,376,340,430,310,437,305,453,297,462,295,507,276,512,271,508,259,529,251,508,232,479,216,449,210,377,148,330,166,316,151,289,164,285,161,272,172,267,169,265,177,252,184,246,180,242,184,235,183,234,191,221,196,215,193,208,199,203,197,201,205,189,211,184,207,175,213,169,213,168,218,156,226,142,221,137,228,123,234,118,232,85,251,80,249,93,276,91,279,110,307,114,306,108,295,114,288,112,276,128,268,123,259,134,254,217,216,219,210,297,176,303,179,329,166,377,148,449,210,443,249,436,269,406,286,404,305,359,331,358,320,350,313,307,337,303,341,301,363,259,388,224,406,219,388,195,402,205,417,203,419,191,403'); drawings[identif].addArea('prizemie162','223,397,248,383,241,375,248,371,307,339,301,332,297,327,340,302,353,312,360,309,405,284,394,274,441,249,437,269,405,287,405,303,358,333,359,322,345,314,305,340,303,341,301,365,226,406,223,397,103,430,95,432,92,377,155,398,172,390,167,387,156,383,130,359,119,346,108,333,105,321,100,325,105,341,116,356,126,370,137,382,155,398,92,377,92,377,86,264,105,240,104,238,117,232,123,234,137,229,140,221,153,225,166,218,163,206,175,211,183,207,189,210,201,203,201,196,207,199,215,194,220,197,233,191,234,182,240,185,246,180,253,184,265,177,265,169,272,173,277,166,285,162,289,164,316,151,316,143,278,159,271,153,255,161,261,165,247,174,238,169,222,176,227,181,215,188,206,183,189,189,195,195,179,202,171,195,153,204,159,209,143,216,135,210,114,217,120,225,102,232,97,227,76,239,70,245,80,248,86,263,95,432'); drawings[identif].addArea('1--poschodie163','117,315,133,343,140,340,165,375,232,340,236,341,353,279,355,281,393,259,393,254,444,231,442,249,398,271,406,282,359,309,357,307,353,312,339,303,297,327,307,338,249,370,166,417,149,403,166,393,161,385,150,378,129,358,114,340,103,325,110,320,44,265,45,196,63,233,69,231,72,226,94,218,115,209,109,205,130,194,138,200,154,193,146,189,167,180,176,188,184,182,181,176,203,168,212,172,220,167,217,164,235,155,245,159,253,154,249,149,268,139,274,143,289,137,289,130,316,117,316,142,294,152,277,159,271,153,255,161,262,166,255,170,247,174,238,168,222,176,228,181,214,187,205,183,189,189,196,195,179,202,171,195,152,204,159,209,143,216,135,210,114,217,121,224,102,232,98,227,75,238,69,246,45,196,44,265,110,320'); drawings[identif].addArea('2--poschodie164','114,289,110,298,115,310,134,343,141,339,166,375,233,339,235,341,281,316,282,316,354,278,356,280,395,258,395,254,445,230,446,216,400,237,396,241,357,261,353,260,279,300,280,300,234,324,232,323,162,358,113,288,105,302,24,203,49,185,45,190,65,232,74,230,73,226,115,210,111,205,130,194,140,202,157,190,152,187,168,180,178,187,194,176,187,173,204,167,214,172,229,162,222,158,237,153,246,158,260,149,254,146,270,138,276,143,285,138,293,134,288,130,316,118,316,103,271,122,247,136,241,132,216,148,207,145,179,162,171,159,143,178,134,175,65,203,49,185,24,203,104,301'); drawings[identif].addArea('3--poschodie165','315,95,260,48,256,49,295,83,261,96,257,94,227,105,233,112,158,139,152,134,118,146,119,150,75,165,47,124,46,127,51,133,51,136,31,143,41,169,63,202,134,174,142,178,171,158,178,162,207,144,214,148,241,131,248,135,270,121,315,105,315,152,331,167,331,167,374,150,432,198,401,215,400,218,358,238,354,239,279,278,228,304,227,302,179,326,161,297,158,290,156,285,152,286,152,288,144,272,140,265,138,263,135,262,133,267,113,276,115,289,162,358,231,323,233,324,354,260,357,261,398,238,398,236,448,214,447,209,378,149,331,167,315,152'); drawings[identif].addArea('prizemie167','60,266,86,267,86,272,128,274,154,274,154,268,213,268,267,268,569,265,606,265,606,299,578,295,572,303,536,301,535,309,516,305,489,305,466,306,465,319,463,319,438,314,413,314,391,316,391,330,388,330,360,325,331,323,278,327,278,345,59,329'); drawings[identif].addArea('1--poschodie168','60,267,86,266,86,273,155,274,155,268,214,268,567,265,566,261,586,260,586,247,565,247,565,226,216,186,157,190,130,190,89,195,63,197'); drawings[identif].addArea('2--poschodie169','565,226,565,222,569,222,569,208,566,208,565,191,504,175,488,176,410,158,411,154,217,110,169,120,156,123,133,118,92,127,66,132,63,197,89,194,130,189,156,190,216,185'); drawings[identif].addArea('3--poschodie170','565,190,566,186,569,186,569,184,564,184,564,176,544,171,542,152,564,151,543,142,544,138,531,133,502,122,502,101,436,74,433,70,426,70,383,77,342,62,341,59,333,59,289,42,237,53,236,30,229,30,228,54,146,71,145,79,110,86,110,90,129,95,67,106,66,131,132,118,157,122,217,113'); break; case 'flats': break; case 'content-build': drawings[identif].addArea('a1-a2158-content','170,415,219,386,224,406,302,362,301,341,307,338,307,335,350,314,358,318,359,332,405,305,405,285,439,269,438,250,441,249,447,213,448,207,376,145,331,165,316,150,316,95,264,52,257,47,229,57,222,52,187,63,188,70,127,92,120,86,81,100,84,106,45,120,51,134,30,142,49,185,45,187,45,193,70,246,79,245,94,276,93,278,109,307,112,306,117,316,101,323,109,346,135,380,155,398,149,403'); drawings[identif].addArea('b160-content','596,193,551,230,489,195,454,174,410,149,372,127,368,129,367,128,368,125,338,108,332,102,332,97,340,91,340,85,344,86,345,49,384,29,391,33,406,25,456,47,462,45,520,71,520,77,598,113,588,125,611,137,607,159,610,162,601,170'); 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;