/* 
 * Benutzerdefinierte Steuerelemente
 */

// Bilder für die Pfeile links, rechts, oben und unten
var mc_image = new Array();
mc_image['up'] = "images/pfeil_oben.png";
mc_image['left'] = "images/pfeil_links.png";
mc_image['right'] = "images/pfeil_rechts.png";
mc_image['down'] = "images/pfeil_unten.png";

// Einstellungen
var mc_mapWidth = 768; //320;
var mc_mapHeight = 300;
var mc_padding = 20;

// "Klasse" des benutzerdefinierten Steuerlements,
// erwartet die Richtung (left, right, up oder down)
function MoveControl(direction)
{
    this.direction = direction;
}

MoveControl.prototype = new GControl();

MoveControl.prototype.initialize = function(map) {
    var container = document.createElement("div");

    var img = document.createElement("img");
    img.src = mc_image[this.direction];
    img.width = 22;
    img.height = 22;
    img.alt = mc_getAltText(this.direction);
    img.style.cursor = "pointer";

    container.appendChild(img);

    var dir = this.direction;

    GEvent.addDomListener(img, "click", function() {
        if(dir == "left")
            map.panBy(new GSize(100,0));
        else if(dir == "right")
            map.panBy(new GSize(-100,0));
        else if(dir == "up")
            map.panBy(new GSize(0,100));
        else
            map.panBy(new GSize(0,-100));
    });

    map.getContainer().appendChild(container);
    return container;
}

function mc_getPan(direction) {
    if(direction == "left")
        return new GSize(100,0);
    else if(direction == "right")
        return new GSize(-100,0);
    else if(direction == "up")
        return new GSize(0,100);
    else
        return new GSize(0,-100);
}

function mc_getAltText(direction) {
    if(direction == "left")
        return "<-";
    else if(direction == "right")
        return "->";
    else if(direction == "up")
        return "/\\";
    else
        return "\\/";
}

MoveControl.prototype.getDefaultPosition = function() {
    if(this.direction == "left")
        return new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(mc_padding, mc_mapHeight / 2 - 11));
    else if(this.direction == "up")
        return new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(mc_mapWidth / 2 - 11, mc_padding));
    else if(this.direction == "down")
        return new GControlPosition(G_ANCHOR_BOTTOM_LEFT, new GSize(mc_mapWidth / 2 - 11, mc_padding));
    else
        return new GControlPosition(G_ANCHOR_TOP_RIGHT, new GSize(mc_padding, mc_mapHeight / 2 - 11));
}

