function worldmapen_loadMap($z = 1)
{
    global $worldmapen_globals;
    if (!isset($worldmapen_globals["map"]) || is_null($worldmapen_globals["map"])) {
        //		debug("Loading worldmap from database");
        $map = get_module_setting("TerrainDefinition", "worldmapen");
        //		debug("map={$map}");
        if (!is_null($map)) {
            $worldmapen_globals["map"] = unserialize($map);
        } else {
            $worldmapen_globals["map"] = worldmapen_generateNewMap("Forest");
            worldmapen_saveMap();
        }
    }
    //	debug("Got worldmap:");
    //	debug($worldmapen_globals["map"]);
    return $worldmapen_globals["map"][$z];
}
function worldmapen_editor_terrain($op, $subop, $act)
{
    global $_POST, $worldmapen_globals;
    if ($act == "save") {
        $terrainDefs = worldmapen_loadTerrainDefs();
        reset($_POST);
        foreach ($_POST as $key => $value) {
            list($x, $y) = explode("_", $key, 2);
            if (is_numeric($x) && is_numeric($y)) {
                worldmapen_setTerrain($x, $y, 1, $value);
            }
        }
        worldmapen_saveMap();
        output("Worldmap saved");
    }
    $colors = '';
    foreach ($worldmapen_globals['terrainDefs'] as $defs) {
        $colors .= '"' . $defs['color'] . '", ';
    }
    $colors = rtrim($colors, ', ');
    // -----------------------------------------------------------------------
    // BEGIN - Java script to determine the terrain type by clicking on a td cell
    // -----------------------------------------------------------------------
    rawoutput("<script type=\"text/javascript\"><!--");
    rawoutput('colors = [' . $colors . '];');
    rawoutput("cRGB = [];");
    rawoutput("function toRGB(color){");
    rawoutput("var rgb = \"rgb(\" + parseInt(color.substring(1,3), 16) + \", \" + parseInt(color.substring(3,5), 16) + \", \" + parseInt(color.substring(5,8), 16) + \")\";   ");
    rawoutput("return rgb;");
    rawoutput("}");
    rawoutput("for(var i=0; i<colors.length; i++){");
    rawoutput("cRGB[i] = toRGB(colors[i]);");
    rawoutput("}");
    rawoutput("function changeColor(target){");
    rawoutput("var swapper = navigator.appVersion.indexOf(\"MSIE\")!=-1 ? toRGB(document.getElementById(target).style.backgroundColor) : document.getElementById(target).style.backgroundColor;");
    rawoutput("var set = false;");
    rawoutput("var xx;");
    rawoutput("for(var i=0; i<cRGB.length; i++){");
    rawoutput("if(swapper == cRGB[i]){");
    rawoutput("if(((i+1)) >= cRGB.length){");
    rawoutput("xx = 0;");
    rawoutput("}else{");
    rawoutput("xx = i+1;");
    rawoutput("}");
    rawoutput("document.getElementById(target).style.background = colors[xx];");
    rawoutput("document.getElementById(target+\"b\").value = xx;");
    rawoutput("set = true;");
    rawoutput("i=cRGB.length;");
    rawoutput("}");
    rawoutput("}");
    rawoutput("set ? null : (document.getElementById(target).style.background = colors[1], document.getElementById(target+\"b\").value = 1);");
    rawoutput("}//-->");
    rawoutput("</script>");
    // -----------------------------------------------------------------------
    // END - Java script to determine the terrain type by clicking on a td cell
    // -----------------------------------------------------------------------
    output('<noscript>JavaScript must be enabled for the terrain editor to work.</noscript>', true);
    worldmapen_viewmap(false);
}