init web ems all
This commit is contained in:
944
wxc2_omc/fault/networkStatus/jsgraphics.php
Executable file
944
wxc2_omc/fault/networkStatus/jsgraphics.php
Executable file
@@ -0,0 +1,944 @@
|
||||
<script language="JavaScript">
|
||||
|
||||
/* This notice must be untouched at all times.
|
||||
|
||||
|
||||
|
||||
wz_jsgraphics.js v. 2.36
|
||||
|
||||
The latest version is available at
|
||||
|
||||
http://www.walterzorn.com
|
||||
|
||||
or http://www.devira.com
|
||||
|
||||
or http://www.walterzorn.de
|
||||
|
||||
|
||||
|
||||
Copyright (c) 2002-2004 Walter Zorn. All rights reserved.
|
||||
|
||||
Created 3. 11. 2002 by Walter Zorn (Web: http://www.walterzorn.com )
|
||||
|
||||
Last modified: 21. 6. 2006
|
||||
|
||||
|
||||
|
||||
Performance optimizations for Internet Explorer
|
||||
|
||||
by Thomas Frank and John Holdsworth.
|
||||
|
||||
fillPolygon method implemented by Matthieu Haller.
|
||||
|
||||
|
||||
|
||||
High Performance JavaScript Graphics Library.
|
||||
|
||||
Provides methods
|
||||
|
||||
- to draw lines, rectangles, ellipses, polygons
|
||||
|
||||
with specifiable line thickness,
|
||||
|
||||
- to fill rectangles and ellipses
|
||||
|
||||
- to draw text.
|
||||
|
||||
NOTE: Operations, functions and branching have rather been optimized
|
||||
|
||||
to efficiency and speed than to shortness of source code.
|
||||
|
||||
|
||||
|
||||
LICENSE: LGPL
|
||||
|
||||
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
|
||||
License (LGPL) as published by the Free Software Foundation; either
|
||||
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
|
||||
Lesser General Public License for more details.
|
||||
|
||||
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
|
||||
License along with this library; if not, write to the Free Software
|
||||
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA,
|
||||
|
||||
or see http://www.gnu.org/copyleft/lesser.html
|
||||
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
var jg_ihtm, jg_ie, jg_fast, jg_dom, jg_moz,
|
||||
|
||||
jg_n4 = (document.layers && typeof document.classes != "undefined");
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
function chkDHTM(x, i)
|
||||
|
||||
{
|
||||
|
||||
x = document.body || null;
|
||||
|
||||
jg_ie = x && typeof x.insertAdjacentHTML != "undefined";
|
||||
|
||||
jg_dom = (x && !jg_ie &&
|
||||
|
||||
typeof x.appendChild != "undefined" &&
|
||||
|
||||
typeof document.createRange != "undefined" &&
|
||||
|
||||
typeof (i = document.createRange()).setStartBefore != "undefined" &&
|
||||
|
||||
typeof i.createContextualFragment != "undefined");
|
||||
|
||||
jg_ihtm = !jg_ie && !jg_dom && x && typeof x.innerHTML != "undefined";
|
||||
|
||||
jg_fast = jg_ie && document.all && !window.opera;
|
||||
|
||||
jg_moz = jg_dom && typeof x.style.MozOpacity != "undefined";
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
function pntDoc()
|
||||
|
||||
{
|
||||
|
||||
this.wnd.document.write(jg_fast? this.htmRpc() : this.htm);
|
||||
|
||||
this.htm = '';
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
function pntCnvDom()
|
||||
|
||||
{
|
||||
|
||||
var x = this.wnd.document.createRange();
|
||||
|
||||
x.setStartBefore(this.cnv);
|
||||
|
||||
x = x.createContextualFragment(jg_fast? this.htmRpc() : this.htm);
|
||||
|
||||
if(this.cnv) this.cnv.appendChild(x);
|
||||
|
||||
this.htm = '';
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
function pntCnvIe()
|
||||
|
||||
{
|
||||
|
||||
if(this.cnv) this.cnv.insertAdjacentHTML("BeforeEnd", jg_fast? this.htmRpc() : this.htm);
|
||||
|
||||
this.htm = '';
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
function pntCnvIhtm()
|
||||
|
||||
{
|
||||
|
||||
if(this.cnv) this.cnv.innerHTML += this.htm;
|
||||
|
||||
this.htm = '';
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
function pntCnv()
|
||||
|
||||
{
|
||||
|
||||
this.htm = '';
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
function mkDiv(x, y, w, h)
|
||||
|
||||
{
|
||||
|
||||
this.htm += '<div style="position:absolute;'+
|
||||
|
||||
'left:' + x + 'px;'+
|
||||
|
||||
'top:' + y + 'px;'+
|
||||
|
||||
'width:' + w + 'px;'+
|
||||
|
||||
'height:' + h + 'px;'+
|
||||
|
||||
'clip:rect(0,'+w+'px,'+h+'px,0);'+
|
||||
|
||||
'background-color:' + this.color +
|
||||
|
||||
(!jg_moz? ';overflow:hidden' : '')+
|
||||
|
||||
';"><\/div>';
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
function mkDivIe(x, y, w, h)
|
||||
|
||||
{
|
||||
|
||||
this.htm += '%%'+this.color+';'+x+';'+y+';'+w+';'+h+';';
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
function mkDivPrt(x, y, w, h)
|
||||
|
||||
{
|
||||
|
||||
this.htm += '<div style="position:absolute;'+
|
||||
|
||||
'border-left:' + w + 'px solid ' + this.color + ';'+
|
||||
|
||||
'left:' + x + 'px;'+
|
||||
|
||||
'top:' + y + 'px;'+
|
||||
|
||||
'width:0px;'+
|
||||
|
||||
'height:' + h + 'px;'+
|
||||
|
||||
'clip:rect(0,'+w+'px,'+h+'px,0);'+
|
||||
|
||||
'background-color:' + this.color +
|
||||
|
||||
(!jg_moz? ';overflow:hidden' : '')+
|
||||
|
||||
';"><\/div>';
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
function mkLyr(x, y, w, h)
|
||||
|
||||
{
|
||||
|
||||
this.htm += '<layer '+
|
||||
|
||||
'left="' + x + '" '+
|
||||
|
||||
'top="' + y + '" '+
|
||||
|
||||
'width="' + w + '" '+
|
||||
|
||||
'height="' + h + '" '+
|
||||
|
||||
'bgcolor="' + this.color + '"><\/layer>\n';
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
var regex = /%%([^;]+);([^;]+);([^;]+);([^;]+);([^;]+);/g;
|
||||
|
||||
function htmRpc()
|
||||
|
||||
{
|
||||
|
||||
return this.htm.replace(
|
||||
|
||||
regex,
|
||||
|
||||
'<div style="overflow:hidden;position:absolute;background-color:'+
|
||||
|
||||
'$1;left:$2;top:$3;width:$4;height:$5"></div>\n');
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
function htmPrtRpc()
|
||||
|
||||
{
|
||||
|
||||
return this.htm.replace(
|
||||
|
||||
regex,
|
||||
|
||||
'<div style="overflow:hidden;position:absolute;background-color:'+
|
||||
|
||||
'$1;left:$2;top:$3;width:$4;height:$5;border-left:$4px solid $1"></div>\n');
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
function mkLin(x1, y1, x2, y2)
|
||||
|
||||
{
|
||||
|
||||
if (x1 > x2)
|
||||
|
||||
{
|
||||
|
||||
var _x2 = x2;
|
||||
|
||||
var _y2 = y2;
|
||||
|
||||
x2 = x1;
|
||||
|
||||
y2 = y1;
|
||||
|
||||
x1 = _x2;
|
||||
|
||||
y1 = _y2;
|
||||
|
||||
}
|
||||
|
||||
var dx = x2-x1, dy = Math.abs(y2-y1),
|
||||
|
||||
x = x1, y = y1,
|
||||
|
||||
yIncr = (y1 > y2)? -1 : 1;
|
||||
|
||||
|
||||
|
||||
if (dx >= dy)
|
||||
|
||||
{
|
||||
|
||||
var pr = dy<<1,
|
||||
|
||||
pru = pr - (dx<<1),
|
||||
|
||||
p = pr-dx,
|
||||
|
||||
ox = x;
|
||||
|
||||
while ((dx--) > 0)
|
||||
|
||||
{
|
||||
|
||||
++x;
|
||||
|
||||
if (p > 0)
|
||||
|
||||
{
|
||||
|
||||
this.mkDiv(ox, y, x-ox, 1);
|
||||
|
||||
y += yIncr;
|
||||
|
||||
p += pru;
|
||||
|
||||
ox = x;
|
||||
|
||||
}
|
||||
|
||||
else p += pr;
|
||||
|
||||
}
|
||||
|
||||
this.mkDiv(ox, y, x2-ox+1, 1);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
else
|
||||
|
||||
{
|
||||
|
||||
var pr = dx<<1,
|
||||
|
||||
pru = pr - (dy<<1),
|
||||
|
||||
p = pr-dy,
|
||||
|
||||
oy = y;
|
||||
|
||||
if (y2 <= y1)
|
||||
|
||||
{
|
||||
|
||||
while ((dy--) > 0)
|
||||
|
||||
{
|
||||
|
||||
if (p > 0)
|
||||
|
||||
{
|
||||
|
||||
this.mkDiv(x++, y, 1, oy-y+1);
|
||||
|
||||
y += yIncr;
|
||||
|
||||
p += pru;
|
||||
|
||||
oy = y;
|
||||
|
||||
}
|
||||
|
||||
else
|
||||
|
||||
{
|
||||
|
||||
y += yIncr;
|
||||
|
||||
p += pr;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
this.mkDiv(x2, y2, 1, oy-y2+1);
|
||||
|
||||
}
|
||||
|
||||
else
|
||||
|
||||
{
|
||||
|
||||
while ((dy--) > 0)
|
||||
|
||||
{
|
||||
|
||||
y += yIncr;
|
||||
|
||||
if (p > 0)
|
||||
|
||||
{
|
||||
|
||||
this.mkDiv(x++, oy, 1, y-oy);
|
||||
|
||||
p += pru;
|
||||
|
||||
oy = y;
|
||||
|
||||
}
|
||||
|
||||
else p += pr;
|
||||
|
||||
}
|
||||
|
||||
this.mkDiv(x2, oy, 1, y2-oy+1);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
function mkLin2D(x1, y1, x2, y2)
|
||||
|
||||
{
|
||||
|
||||
if (x1 > x2)
|
||||
|
||||
{
|
||||
|
||||
var _x2 = x2;
|
||||
|
||||
var _y2 = y2;
|
||||
|
||||
x2 = x1;
|
||||
|
||||
y2 = y1;
|
||||
|
||||
x1 = _x2;
|
||||
|
||||
y1 = _y2;
|
||||
|
||||
}
|
||||
|
||||
var dx = x2-x1, dy = Math.abs(y2-y1),
|
||||
|
||||
x = x1, y = y1,
|
||||
|
||||
yIncr = (y1 > y2)? -1 : 1;
|
||||
|
||||
|
||||
|
||||
var s = this.stroke;
|
||||
|
||||
if (dx >= dy)
|
||||
|
||||
{
|
||||
|
||||
if (dx > 0 && s-3 > 0)
|
||||
|
||||
{
|
||||
|
||||
var _s = (s*dx*Math.sqrt(1+dy*dy/(dx*dx))-dx-(s>>1)*dy) / dx;
|
||||
|
||||
_s = (!(s-4)? Math.ceil(_s) : Math.round(_s)) + 1;
|
||||
|
||||
}
|
||||
|
||||
else var _s = s;
|
||||
|
||||
var ad = Math.ceil(s/2);
|
||||
|
||||
|
||||
|
||||
var pr = dy<<1,
|
||||
|
||||
pru = pr - (dx<<1),
|
||||
|
||||
p = pr-dx,
|
||||
|
||||
ox = x;
|
||||
|
||||
while ((dx--) > 0)
|
||||
|
||||
{
|
||||
|
||||
++x;
|
||||
|
||||
if (p > 0)
|
||||
|
||||
{
|
||||
|
||||
this.mkDiv(ox, y, x-ox+ad, _s);
|
||||
|
||||
y += yIncr;
|
||||
|
||||
p += pru;
|
||||
|
||||
ox = x;
|
||||
|
||||
}
|
||||
|
||||
else p += pr;
|
||||
|
||||
}
|
||||
|
||||
this.mkDiv(ox, y, x2-ox+ad+1, _s);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
else
|
||||
|
||||
{
|
||||
|
||||
if (s-3 > 0)
|
||||
|
||||
{
|
||||
|
||||
var _s = (s*dy*Math.sqrt(1+dx*dx/(dy*dy))-(s>>1)*dx-dy) / dy;
|
||||
|
||||
_s = (!(s-4)? Math.ceil(_s) : Math.round(_s)) + 1;
|
||||
|
||||
}
|
||||
|
||||
else var _s = s;
|
||||
|
||||
var ad = Math.round(s/2);
|
||||
|
||||
|
||||
|
||||
var pr = dx<<1,
|
||||
|
||||
pru = pr - (dy<<1),
|
||||
|
||||
p = pr-dy,
|
||||
|
||||
oy = y;
|
||||
|
||||
if (y2 <= y1)
|
||||
|
||||
{
|
||||
|
||||
++ad;
|
||||
|
||||
while ((dy--) > 0)
|
||||
|
||||
{
|
||||
|
||||
if (p > 0)
|
||||
|
||||
{
|
||||
|
||||
this.mkDiv(x++, y, _s, oy-y+ad);
|
||||
|
||||
y += yIncr;
|
||||
|
||||
p += pru;
|
||||
|
||||
oy = y;
|
||||
|
||||
}
|
||||
|
||||
else
|
||||
|
||||
{
|
||||
|
||||
y += yIncr;
|
||||
|
||||
p += pr;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
this.mkDiv(x2, y2, _s, oy-y2+ad);
|
||||
|
||||
}
|
||||
|
||||
else
|
||||
|
||||
{
|
||||
|
||||
while ((dy--) > 0)
|
||||
|
||||
{
|
||||
|
||||
y += yIncr;
|
||||
|
||||
if (p > 0)
|
||||
|
||||
{
|
||||
|
||||
this.mkDiv(x++, oy, _s, y-oy+ad);
|
||||
|
||||
p += pru;
|
||||
|
||||
oy = y;
|
||||
|
||||
}
|
||||
|
||||
else p += pr;
|
||||
|
||||
}
|
||||
|
||||
this.mkDiv(x2, oy, _s, y2-oy+ad+1);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
function mkLinDott(x1, y1, x2, y2)
|
||||
|
||||
{
|
||||
|
||||
if (x1 > x2)
|
||||
|
||||
{
|
||||
|
||||
var _x2 = x2;
|
||||
|
||||
var _y2 = y2;
|
||||
|
||||
x2 = x1;
|
||||
|
||||
y2 = y1;
|
||||
|
||||
x1 = _x2;
|
||||
|
||||
y1 = _y2;
|
||||
|
||||
}
|
||||
|
||||
var dx = x2-x1, dy = Math.abs(y2-y1),
|
||||
|
||||
x = x1, y = y1,
|
||||
|
||||
yIncr = (y1 > y2)? -1 : 1,
|
||||
|
||||
drw = true;
|
||||
|
||||
if (dx >= dy)
|
||||
|
||||
{
|
||||
|
||||
var pr = dy<<1,
|
||||
|
||||
pru = pr - (dx<<1),
|
||||
|
||||
p = pr-dx;
|
||||
|
||||
while ((dx--) > 0)
|
||||
|
||||
{
|
||||
|
||||
if (drw) this.mkDiv(x, y, 1, 1);
|
||||
|
||||
drw = !drw;
|
||||
|
||||
if (p > 0)
|
||||
|
||||
{
|
||||
|
||||
y += yIncr;
|
||||
|
||||
p += pru;
|
||||
|
||||
}
|
||||
|
||||
else p += pr;
|
||||
|
||||
++x;
|
||||
|
||||
}
|
||||
|
||||
if (drw) this.mkDiv(x, y, 1, 1);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
else
|
||||
|
||||
{
|
||||
|
||||
var pr = dx<<1,
|
||||
|
||||
pru = pr - (dy<<1),
|
||||
|
||||
p = pr-dy;
|
||||
|
||||
while ((dy--) > 0)
|
||||
|
||||
{
|
||||
|
||||
if (drw) this.mkDiv(x, y, 1, 1);
|
||||
|
||||
drw = !drw;
|
||||
|
||||
y += yIncr;
|
||||
|
||||
if (p > 0)
|
||||
|
||||
{
|
||||
|
||||
++x;
|
||||
|
||||
p += pru;
|
||||
|
||||
}
|
||||
|
||||
else p += pr;
|
||||
|
||||
}
|
||||
|
||||
if (drw) this.mkDiv(x, y, 1, 1);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
function mkOv(left, top, width, height)
|
||||
|
||||
{
|
||||
|
||||
var a = width>>1, b = height>>1,
|
||||
|
||||
wod = width&1, hod = (height&1)+1,
|
||||
|
||||
cx = left+a, cy = top+b,
|
||||
|
||||
x = 0, y = b,
|
||||
|
||||
ox = 0, oy = b,
|
||||
|
||||
aa = (a*a)<<1, bb = (b*b)<<1,
|
||||
|
||||
st = (aa>>1)*(1-(b<<1)) + bb,
|
||||
|
||||
tt = (bb>>1) - aa*((b<<1)-1),
|
||||
|
||||
w, h;
|
||||
|
||||
while (y > 0)
|
||||
|
||||
{
|
||||
|
||||
if (st < 0)
|
||||
|
||||
{
|
||||
|
||||
st += bb*((x<<1)+3);
|
||||
|
||||
tt += (bb<<1)*(++x);
|
||||
|
||||
}
|
||||
|
||||
else if (tt < 0)
|
||||
|
||||
{
|
||||
|
||||
st += bb*((x<<1)+3) - (aa<<1)*(y-1);
|
||||
|
||||
tt += (bb<<1)*(++x) - aa*(((y--)<<1)-3);
|
||||
|
||||
w = x-ox;
|
||||
|
||||
h = oy-y;
|
||||
|
||||
if (w&2 && h&2)
|
||||
|
||||
{
|
||||
|
||||
this.mkOvQds(cx, cy, -x+2, ox+wod, -oy, oy-1+hod, 1, 1);
|
||||
|
||||
this.mkOvQds(cx, cy, -x+1, x-1+wod, -y-1, y+hod, 1, 1);
|
||||
|
||||
}
|
||||
|
||||
else this.mkOvQds(cx, cy, -x+1, ox+wod, -oy, oy-h+hod, w, h);
|
||||
|
||||
ox = x;
|
||||
|
||||
oy = y;
|
||||
|
||||
}
|
||||
|
||||
else
|
||||
|
||||
{
|
||||
|
||||
tt -= aa*((y<<1)-3);
|
||||
|
||||
st -= (aa<<1)*(--y);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
this.mkDiv(cx-a, cy-oy, a-ox+1, (oy<<1)+hod);
|
||||
|
||||
this.mkDiv(cx+ox+wod, cy-oy, a-ox+1, (oy<<1)+hod);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
function mkOv2D(left, top, width, height)
|
||||
|
||||
{
|
||||
|
||||
var s = this.stroke;
|
||||
|
||||
width += s-1;
|
||||
|
||||
height += s-1;
|
||||
|
||||
var a = width>>1, b = height>>1,
|
||||
|
||||
wod = width&1, hod = (height&1)+1,
|
||||
|
||||
cx = left+a, cy = top+b,
|
||||
|
||||
x = 0, y = b,
|
||||
|
||||
aa = (a*a)<<1, bb = (b*b)<<1,
|
||||
|
||||
st = (aa>>1)*(1-(b<<1)) + bb,
|
||||
|
||||
tt = (bb>>1) - aa*((b<<1)-1);
|
||||
|
||||
|
||||
|
||||
if (s-4 < 0 && (!(s-2) || width-51 > 0 && height-51 > 0))
|
||||
|
||||
{
|
||||
|
||||
var ox = 0, oy = b,
|
||||
|
||||
w, h,
|
||||
|
||||
pxl, pxr, pxt, pxb, pxw;
|
||||
|
||||
while (y > 0)
|
||||
|
||||
{
|
||||
|
||||
if (st < 0)
|
||||
|
||||
{
|
||||
|
||||
st += bb*((x<<1)+3);
|
||||
|
||||
tt += (bb<<1)*(++x);
|
||||
|
||||
}
|
||||
|
||||
else if (tt < 0)
|
||||
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user