function EStyle(stemImage, stemSize, boxClass, boxOffset) {
    this.stemImage = stemImage;
    this.stemSize = stemSize;
    this.boxClass = boxClass;
    this.boxOffset = boxOffset;
    var agent = navigator.userAgent.toLowerCase();
    var fudge = 5;
    if (agent.indexOf("opera") > -1) {
        fudge = 3;
    } if (agent.indexOf("firefox") > -1) {
        fudge = 5;
    } if (agent.indexOf("safari") > -1) { fudge = 5; } if ((agent.indexOf("msie") > -1) && (agent.indexOf("opera") < 1)) { fudge = 0; } this.fudge = fudge;
} var E_STYLE_1 = new EStyle("includes/stem1.png", new GSize(50, 50), "estyle1", new GPoint(-50, 50 - 3)); function EWindow(map, estyle) { this.map = map; this.estyle = estyle; this.visible = false; this.ie = false; var agent = navigator.userAgent.toLowerCase(); if ((agent.indexOf("msie") > -1) && (agent.indexOf("opera") < 1)) { this.ie = true } else { this.ie = false } } EWindow.prototype = new GOverlay(); EWindow.prototype.initialize = function(map) { var div1 = document.createElement("div"); div1.style.position = "absolute"; map.getPane(G_MAP_FLOAT_SHADOW_PANE).appendChild(div1); var div2 = document.createElement("div"); div2.style.position = "absolute"; div2.style.width = this.estyle.stemSize.width + "px"; map.getPane(G_MAP_FLOAT_SHADOW_PANE).appendChild(div2); this.div1 = div1; this.div2 = div2; }
EWindow.prototype.openOnMap = function(point, html, offset) {
    this.offset = offset || new GPoint(0, 0); this.point = point; this.div1.innerHTML = '<div class="' + this.estyle.boxClass + '"><nobr>' + html + '</nobr></div>';
    if (this.ie && this.estyle.stemImage.toLowerCase().indexOf(".png") > -1) { var loader = "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + this.estyle.stemImage + "', sizingMethod='scale');"; this.div2.innerHTML = '<div style="height:' + this.estyle.stemSize.height + 'px; width:' + this.estyle.stemSize.width + 'px; ' + loader + '" ></div>'; } else {
        this.div2.innerHTML = '<img src="' + this.estyle.stemImage + '" width="' + this.estyle.stemSize.width + '" height="' + this.estyle.stemSize.height + '">';
    } var z = GOverlay.getZIndex(this.point.lat()); this.div1.style.zIndex = z; this.div2.style.zIndex = z + 1; this.visible = true; this.show(); this.redraw(true);
}
EWindow.prototype.openOnMarker = function(marker, html) {
    var vx = marker.getIcon().iconAnchor.x - marker.getIcon().infoWindowAnchor.x;
    var vy = marker.getIcon().iconAnchor.y - marker.getIcon().infoWindowAnchor.y;
    this.openOnMap(marker.getPoint(), html, new GPoint(vx, vy));
}
EWindow.prototype.redraw = function(force) {
    if (!this.visible) { return; }
    var p = this.map.fromLatLngToDivPixel(this.point);
    this.div2.style.left = (p.x + this.offset.x) + "px";
    this.div2.style.bottom = (-p.y + this.offset.y - this.estyle.fudge) + "px";
    this.div1.style.left = (p.x + this.offset.x + this.estyle.boxOffset.x) + "px";
    this.div1.style.bottom = (-p.y + this.offset.y + this.estyle.boxOffset.y) + "px";
}
EWindow.prototype.remove = function() {
    this.div1.parentNode.removeChild(this.div1);
    this.div2.parentNode.removeChild(this.div2);
    this.visible = false;
}
EWindow.prototype.copy = function() {
    return new EWindow(this.map, this.estyle);
}
EWindow.prototype.show = function() {
    this.div1.style.display = "";
    this.div2.style.display = "";
    this.visible = true;
}
EWindow.prototype.hide = function() {
    this.div1.style.display = "none";
    this.div2.style.display = "none";
    this.visible = false;
}