
/* SCHELLENBERG */


var pos;
var aktoverlay;
var PolyLine;
var PolyGon;
var map;
var markerSuche;
var geopoints = new Array();
var objLastSelObject = null;

function object(name,text,mOptions,posX,posY) {
	this.name = name;
	this.text = text;
	this.mOptions = mOptions;
	this.posX = posX;
	this.posY = posY;
}

function geopoint(bildname,bildlink,width,height,typ,farbe,breite,deckkraft,coords,titel,txt,aktposition, shadow, swidth, sheight, kategorie) {
	this.bildname = bildname;
	this.bildlink = bildlink;
	this.width = width;
	this.height = height;
	this.typ = typ;
	this.farbe = farbe;
	this.breite = breite;
	this.deckkraft = deckkraft;
	this.coords = coords;
	this.titel = titel;
	this.txt = "<div style='width:150px'>"+txt+"</div>";
	this.aktposition = aktposition;
	this.shadow = shadow;
	this.swidth = swidth;
	this.sheight = sheight;
	this.kategorie = kategorie;
}

function addGMGLogo() {

    // Create our "tiny" marker icon
    var icon = new GIcon();
    icon.image = "http://europa.gmgnet.li/gmgms/websitemanagement/grafik/maps/gmglogo.jpg";
    icon.iconAnchor = new GPoint(5, 5);
    icon.infoWindowAnchor = new GPoint(0, 0);
    icon.iconSize = new GSize(20, 9);
    
    // Set up our GMarkerOptions object
    gmgOptions = { icon:icon };
    
    var gmg = new object("GMG Buchs","<div style='width:250px;height:120px'><img src='http://login.gmgnet.li/gmgms/utilities/urlImageResize.aspx?w=150&h=195&url=http://login.gmgnet.li/gmgnet/fotoalbum/070720061628michael.jpg' align='left' style='margin-right:5px'>Buchhandlung<br/>Computer<br/>Media<br/>Net<br/><a target='_blank' href='http://www.gmg.biz'>www.gmg.biz</a></div>",gmgOptions,47.16624475136683,9.475493431091308);
    map.addOverlay(createMarker(gmg));
    var gmg = new object("GMG Schaan","<div style='width:250px;height:120px'><img src='http://login.gmgnet.li/gmgms/utilities/urlImageResize.aspx?w=150&h=120&url=http://europa.gmgnet.li/gmgms/websitemanagement/grafik/maps/arthur.jpg' align='left' style='margin-right:5px'>Buchhandlung<br/>Computer<br/>Verlag<br/><a target='_blank' href='http://www.gmg.biz'>www.gmg.biz</a></div>",gmgOptions,47.165792505888895,9.508602619171142);
    map.addOverlay(createMarker(gmg));
}

function addOrtsplan() 
{
    //Ruggell
    /*
    var boundaries = new GLatLngBounds(new GLatLng(47.247646666,9.51359), new GLatLng(47.25703,9.55158));
    var oldmap = new GGroundOverlay("http://testeuropa.gmg.biz/ruggell/grafik/maps2/zentrum_ruggell_1.png", boundaries);
    map.addOverlay(oldmap);
    
    boundaries = new GLatLngBounds(new GLatLng(47.24925,9.52719), new GLatLng(47.26570,9.55108));
    oldmap = new GGroundOverlay("http://testeuropa.gmg.biz/ruggell/grafik/maps2/zentrum_ruggell_0.png", boundaries);
    map.addOverlay(oldmap);
    
    boundaries = new GLatLngBounds(new GLatLng(47.23826333333,9.51359), new GLatLng(47.247646666,9.55158));
    oldmap = new GGroundOverlay("http://testeuropa.gmg.biz/ruggell/grafik/maps2/zentrum_ruggell_2.png", boundaries);
    map.addOverlay(oldmap);
    
    boundaries = new GLatLngBounds(new GLatLng(47.22888,9.51359), new GLatLng(47.23826333333,9.55158));
    oldmap = new GGroundOverlay("http://testeuropa.gmg.biz/ruggell/grafik/maps2/zentrum_ruggell_3.png", boundaries);
    map.addOverlay(oldmap);
    */  
}

    
function load() 
{
    window.setTimeout("loadit()",500);
}

function loadit()
{
  if(subgurim_map == "undefined")
  {
    load();
  }
  else if (GBrowserIsCompatible()) 
  {  
    map = subgurim_map;
	    
	//map.setCenter(new GLatLng(centerX, centerY), Zoom);
    //addOrtsplan();
    //addGMGLogo();
    
    // if(typ == 'Punkt')
    //   showPoints();
    
    //map.addControl(new GLargeMapControl());
    
    aktoverlay = null;
  }
}

function ClearAll()
{
    map.clearOverlays();
    //addGMGLogo();
    //addOrtsplan();
}

function getHighlightIcon(img,width,height) {
    var icon = new GIcon();
    icon.image = "http://europa.gmgnet.li/gmgms/websitemanagement/grafik/maps/"+img.replace(".","_on.");
    icon.iconAnchor = new GPoint(width/2, height);
    icon.infoWindowAnchor = new GPoint(0, 0);
    icon.iconSize = new GSize(width, height);
    return icon;
}

function getMarkerIcon() {
    var icon = new GIcon();
    icon.image = "http://europa.gmgnet.li/gmgms/websitemanagement/grafik/maps/marker.gif";
    icon.iconAnchor = new GPoint(5, 9);
    icon.infoWindowAnchor = new GPoint(0, 0);
    icon.iconSize = new GSize(14, 14);
    return icon;
}

function showPoint(bildname,bildlink,width,height,typ,farbe,breite,deckkraft,coords,titel,txt,aktposition, shadow, swidth, sheight) {
    var s = coords.split('|');
    var objs = new Array();
    var highlight;
    
    // Create our "tiny" marker icon
    var icon = new GIcon();
    icon.image = "http://europa.gmgnet.li/gmgms/websitemanagement/grafik/maps/"+bildlink;
    icon.iconAnchor = new GPoint(width/2, height);
    icon.infoWindowAnchor = new GPoint(0, 0);
    icon.iconSize = new GSize(width, height);
    if(swidth > 0) {
	icon.shadow = "http://europa.gmgnet.li/gmgms/websitemanagement/grafik/maps/"+shadow;
    	icon.shadowSize = new GSize(swidth, sheight);
    }    

    // Set up our GMarkerOptions object
    markerOptions = { icon:icon };
    
    if(typ == "Punkt") {
        for(var i=0; i<s.length; i++) 
        {
            var t = s[i].split(';');
            if(t.length == 4) 
            {
                objs[t[2]] = new object(titel, txt,markerOptions,t[0],t[1]);
            }
        }
        
        for(var i=0; i<objs.length; i++) {
           if(objs[i])
    	        map.addOverlay(createMarker(objs[i]));
        }
    } else if(typ == "Linie") {
        var linie = '';
        
        for(var i=0; i<s.length; i++) {
            var t = s[i].split(';');
            if(t.length == 4) {
                objs[t[2]] = new object(titel, txt,'',t[0],t[1]);
            }
        }
        
        var points = new Array();
    
        for(var i=0; i<objs.length; i++) {
           if(objs[i]) {
                points[points.length] = new GLatLng(objs[i].posX,objs[i].posY);
           }
        }
        
        PolyLine = new GPolyline(points, farbe, breite);
	    map.addOverlay(PolyLine);
	    
        if(points.length > 0)
        {
            var p = new object(titel, txt,markerOptions,points[0].lat(),points[0].lng());
            map.addOverlay(createMarker(p));
	    }
    } else {
        var linie = '';
        
        for(var i=0; i<s.length; i++) {
            var t = s[i].split(';');
            if(t.length == 4) {
                objs[t[2]] = new object(titel, txt,'',t[0],t[1]);
            }
        }
        
        var points = new Array();
    
        for(var i=0; i<objs.length; i++) {
           if(objs[i]) {
                points[points.length] = new GLatLng(objs[i].posX,objs[i].posY);
           }
        }
        
        PolyGon = new GPolygon(points, farbe,1,deckkraft,farbe,deckkraft);
	    map.addOverlay(PolyGon);
	    
        if(points.length > 0) {
            var p = new object(titel, txt,markerOptions,points[0].lat(),points[0].lng());
            map.addOverlay(createMarker(p));
	    }
    }
}

// Creates a marker at the given point
// Clicking the marker will hide it
function createMarker(o) {
	var point = new GLatLng(o.posX,o.posY);
	aktoverlay = new GMarker(point,o.mOptions);
	aktoverlay.value = o.name;
	GEvent.addListener(aktoverlay,"click", function() {
		var myHtml = "<b>" + o.name + "</b><br/>" + o.text;
		map.openInfoWindowHtml(point, myHtml);
	});
	
	return aktoverlay;
}

// Changes Map Type
function showMap(typ) 
{
    if(typ == 1)
        map.setMapType(G_NORMAL_MAP);
    else if(typ == 2)
        map.setMapType(G_SATELLITE_MAP);
    else if(typ == 3)
        map.setMapType(G_HYBRID_MAP);
    else if(typ == 4)
        map.setMapType(G_PHYSICAL_MAP);
}

function selectObject(id, rubrikid)
{
    var objSelected = $('o'+id);
    
    // Zuletzt markiertes Objekt deselektieren
    if(objLastSelObject != null)
    {
    	objLastSelObject.className = "geoobj";
    }
    
    setRubrik(rubrikid);
        
    // Selektiertes Objekt markieren
    objSelected.className = "geoobj_sel";
    objLastSelObject = objSelected;
}

function showGeoTag(id, rubrikid,typ,x,y) 
{
    if(!map) {
        window.setTimeout("showGeoTag("+id+", "+rubrikid+",'"+typ+"',"+x+","+y+")",100);
        return;
    }
    
    selectObject(id, rubrikid);
    
    map.closeInfoWindow();
    
    if(aktoverlay)
    {
        map.removeOverlay(aktoverlay);
    }
    
    if(PolyLine)
    {
        map.removeOverlay(PolyLine);
    }
    
    if(PolyGon)
    {
        map.removeOverlay(PolyGon);
    }
    
    if(markerSuche)
    {
        map.removeOverlay(markerSuche);
    }    
    
    if(typ == "Punkt") 
    {         
        for(var i=0; i<geopoints.length; i++) 
        {
            if(geopoints[i].aktposition == id) 
            {
                var point = new GLatLng(x,y);
                var myHtml = "<b>" + geopoints[i].titel + "</b><br/>" + geopoints[i].txt;
                
                aktoverlay = new GMarker(point,{ icon: getHighlightIcon(geopoints[i].bildlink,geopoints[i].width,geopoints[i].height) });
                GEvent.addListener(aktoverlay,"click", function() { 
                map.openInfoWindowHtml(point, myHtml); 
                });
                
                map.addOverlay(aktoverlay);
                map.openInfoWindowHtml(point, myHtml);
            }
        }
    }
    else
    {
        for(var i=0; i<geopoints.length; i++) 
        {
            if(geopoints[i].aktposition == id)
            {
                var point = new GLatLng(x,y);
                var myHtml = "<b>" + geopoints[i].titel + "</b><br/>" + geopoints[i].txt;
                
                showPoint(geopoints[i].bildname,geopoints[i].bildlink,geopoints[i].width,geopoints[i].height,geopoints[i].typ,geopoints[i].farbe,geopoints[i].breite,geopoints[i].deckkraft,geopoints[i].coords,geopoints[i].titel,geopoints[i].txt,geopoints[i].aktposition,geopoints[i].shadow,geopoints[i].swidth,geopoints[i].sheight);
                map.openInfoWindowHtml(point, myHtml);
            }
        }
    }
    
    var zoom;
    if(rubrikid == 11)
    {
        zoom = 13;
    }
    else
    {
        zoom = map.getZoom();
    }
    map.setCenter(new GLatLng(x,y), zoom);
}

function addPoint(bildname,bildlink,width,height,typ,farbe,breite,deckkraft,coords,titel,txt,aktposition, shadow, swidth, sheight, kat) 
{
    geopoints[geopoints.length] = new geopoint(bildname,bildlink,width,height,typ,farbe,breite,deckkraft,coords,titel,txt,aktposition, shadow, swidth, sheight, kat);
}

function showPoints(rubrikid) 
{
    if(!map) 
    {
        window.setTimeout("showPoints("+rubrikid+")",100);
        return;
    }

    for(var i=0; i<geopoints.length; i++)
    {
        if(geopoints[i].kategorie == rubrikid)
        {
            showPoint(geopoints[i].bildname,geopoints[i].bildlink,geopoints[i].width,geopoints[i].height,geopoints[i].typ,geopoints[i].farbe,geopoints[i].breite,geopoints[i].deckkraft,geopoints[i].coords,geopoints[i].titel,geopoints[i].txt,geopoints[i].aktposition,geopoints[i].shadow,geopoints[i].swidth,geopoints[i].sheight);
        }
    }
}


function highlightPoint(alink)
{

}
