﻿var displayhtml;
var displayImage;
var bigDisplay;
var initialDisplay;
var displayCount;
var isLoadingControl;

function OverlayControl(html, im) 
{
    bigDisplay = true;
    displayhtml = html;
    displayImage = im;
    initialDisplay = true;
    isLoadingControl = false;
}
function OverlayControl(html, im, isLoadControl)
{
    bigDisplay = true;
    displayhtml = html;
    displayImage = im;
    isLoadingControl = isLoadControl;
}

OverlayControl.prototype = new GControl();

OverlayControl.prototype.initialize = function(amap, html) {
  var container = document.createElement("div");
  var writer = document.createElement("div");
  container.id = "harcourtsoverlay";
  writer.innerHTML = getText(displayhtml, displayImage);
  container.appendChild(writer);
  displayCount = 0;
  amap.getContainer().appendChild(container);
  this.updateOverlay(displayhtml, displayImage);
  this.resize();
  return container;
  
}

OverlayControl.prototype.resize = function ()
{
    if (map != null) {
        var node = map.getContainer();
        for (var i = 0; i < node.childNodes.length; i++)
            if (node.childNodes[i].id == "harcourtsoverlay") {
                if (bigDisplay == true)
                {
                    map.getContainer().childNodes[i].style.width = map.getSize().width - 100 + "px";
                    map.getContainer().childNodes[i].style.top = "120px";
                }
                else
                {
                    map.getContainer().childNodes[i].style.width = "50px";
                    map.getContainer().childNodes[i].style.top = "30px";
                }
                    
             }
                   
    }
}

OverlayControl.prototype.view = function ()
{
    bigDisplay = true;
    if (map != null) 
    {
        var node = map.getContainer();
        for (var i = 0; i < node.childNodes.length; i++)
            if (node.childNodes[i].id == "harcourtsoverlay")
            {
                map.getContainer().childNodes[i].innerHTML = getText(displayhtml, displayImage);
            }
    }
    this.resize();
}

OverlayControl.prototype.hide = function ()
{
    /*if (initialDisplay != true)
        bigDisplay = false;
        
    if (map != null) 
    {
        var node = map.getContainer();
        for (var i = 0; i < node.childNodes.length; i++)
            if (node.childNodes[i].id == "harcourtsoverlay")
            {
                map.getContainer().childNodes[i].innerHTML = getText(displayhtml, displayImage);
                if (initialDisplay == true)
                    map.getContainer().childNodes[i].style.visibility = 'hidden';
                else
                    map.getContainer().childNodes[i].style.visibility = 'visible';
            }
    }
    
    this.resize();
    initialDisplay = false;*/
    map.removeControl(this);        
}

OverlayControl.prototype.updateOverlay = function(text, image) 
{
    displayCount++;
    if (displayCount > 1)
        initialDisplay = false;
        
    displayhtml = text;
    displayImage = image;
    var node = map.getContainer();
    for (var i = 0; i < node.childNodes.length; i++)
        if (node.childNodes[i].id == "harcourtsoverlay")
        {
            if (text == "" || image == "undefined" || text == "undefined") {
                map.getContainer().childNodes[i].style.visibility = 'hidden';
                
                }
            else 
                map.getContainer().childNodes[i].style.visibility = 'visible';
                
             map.getContainer().childNodes[i].innerHTML = getText(text, image);
        }
    
    this.resize();
}

OverlayControl.prototype.updateOverlayImgage = function(text) 
{
    map.addControl(this);
    var node = map.getContainer();
    for (var i = 0; i < node.childNodes.length; i++)
        if (node.childNodes[i].id == "harcourtsoverlay")
        {
            if (text == "")
                map.getContainer().childNodes[i].style.visibility = 'hidden';
            else 
                map.getContainer().childNodes[i].style.visibility = 'visible';
                
             map.getContainer().childNodes[i].innerHTML = text;
        }
    
    this.resize();
}

function getText(t, img) 
{
    if (bigDisplay)
    {    
        if (isLoadingControl)
        {
            t = "<table cellpadding='0' cellspacing='0'><TR><TD>" + img + "</TD><TD>" + t 
                + "</TD></TR></TABLE>";
        }
        else
        {
            t = "<table cellpadding='0' cellspacing='0'><TR><TD>" + img + "</TD><TD>" + t 
                + "</TD><TD><a href='javascript:oControl.hide()'><img src='images/close.gif'></a></TD></TR></TABLE>";
        }
        
    }
    else
    {
        if (img == null)
            t = "";
        else
            t = "<table cellpadding='0' cellspacing='0'><TR><TD><a href='javascript:oControl.view()'>" + img 
                + "</TD></TR></TABLE>";
    }
    return t;
}

OverlayControl.prototype.getDefaultPosition = function() {
    return new GControlPosition(G_ANCHOR_TOP_RIGHT, new GSize(10, 120));
        
}
