
var destinationMarkers = new Array();
var infoWindows = new Array();
var map;
var numWindows = 0;

var Lang;

var testIcon;
var testIconHover;

function europeInit(_Lang, _Zoom, _Lat, _Lng) {  
	
    Lang = _Lang;
    
    testIcon = new google.maps.MarkerImage("/img/pins/resmal.png", 
                                           new google.maps.Size(20, 38), 
                                           new google.maps.Point(0,0), 
                                           new google.maps.Point(10, 37));

    testIconHover = new google.maps.MarkerImage("/img/pins/resmal_hover.png", 
                                                new google.maps.Size(20, 38), 
                                                new google.maps.Point(0,0), 
                                                new google.maps.Point(10, 37));

    var latlng = new google.maps.LatLng(_Lat, _Lng);   
    
    var myOptions = {      
		zoom: _Zoom,      
		center: latlng,      
		mapTypeId: google.maps.MapTypeId.TERRAIN,
        scrollwheel: false
	};    
	map = new google.maps.Map(document.getElementById('map_canvas'), myOptions);  
	
    function addMapMarker(_destinations, _destinationMarkers){
        
        for (var i = 0; i < _destinations.length; i++) {
            
            
    		var destination = _destinations[i];
            
            if (destination!=undefined) {
                
                var myLatLng = new google.maps.LatLng(destination[1], destination[2]);
        		
                var destinationPointer = testIcon;

                 var shadow = new google.maps.MarkerImage('/img/pins/resmal_shadow.png',
                  // The shadow image is larger in the horizontal dimension
                  // while the position and offset are the same as for the main image.
                  new google.maps.Size(40,38),
                  new google.maps.Point(0,0),
                  new google.maps.Point(10, 37));


                // Marker
        		var marker = new google.maps.Marker({
        			position: myLatLng,
        			map: map,
        			title: destination[0],
        			icon: destinationPointer,
                    shadow: shadow,
        			visible: true
                    
                });
                
                id =  _Lang + '|' + destination[3];

        	    setInfoMessage(marker, id, numWindows);
                setMouseOverFunction(marker);
                
        		_destinationMarkers[i] = marker;
        		numWindows++;
            }
      	}
	}

    function setInfoMessage(marker, _id, _numWindows){
		var thisWin = _numWindows;
        
        var inlineHtml = '<div class="hotellbubbla" style="overflow:hidden; width:502px; height:250px;"><img alt="Progress" src="../../img/ajax-loader.gif" id="loader"/></div>';
        
        var infowindow = new google.maps.InfoWindow(
			{ content: inlineHtml });  
        
        google.maps.event.addListener(marker, 'click', function() {  
            
            infowindow.open(map,marker);	
            
            //$("#loader").show();

            //loadpage = "../../price_spec.htm .hotellbox";
            
            loadpage = "/cgi-bin/wspd_cgi.sh/pop_run_dest.p?id=" + _id;
            $(".hotellbubbla").load(loadpage, function(){ 
                $("#loader").hide();
            });

            
            
			for (var k in infoWindows){  
				if (k!= thisWin) infoWindows[k].close();

            } 
		});
		infoWindows[numWindows] = infowindow;
	}

    function setMouseOverFunction(marker){
		google.maps.event.addListener(marker, 'mouseover', function() {   
            
            
			this.setIcon(testIconHover);

            for (var k in destinationMarkers) {
                if (destinations[k][0] == marker.title) {
                    document.getElementById("destination_" + destinations[k][3]).className = "active";
                }
            }
        });
        google.maps.event.addListener(marker, 'mouseout', function() {    
		
            newIcon = testIcon;

            this.setIcon(newIcon);
            for (var k in destinationMarkers) {    
                if (destinations[k][0] == marker.title) {
                    document.getElementById("destination_" + destinations[k][3]).className = "on";
                }
            }
        });
    }

    addMapMarker(destinations, destinationMarkers);

    google.maps.event.addListener(map, 'bounds_changed', function() {    
        isOutsideMap();
    });

    google.maps.event.addListener(map, 'center_changed', function() {    
        isOutsideMap();
    });
}

// Resetting map
function goTo(_Zoom, _lat, _lng){
	map.setZoom(_Zoom);
	map.panTo(new google.maps.LatLng(_lat,_lng));
}


function isOutsideMap(){
    for (var k in destinationMarkers){  
        if (!map.getBounds().contains( destinationMarkers[k].position )){
            document.getElementById("destination_" + destinations[k][3]).className = "off";
        } else {
            document.getElementById("destination_" + destinations[k][3]).className = "on";
        }
    } 
}

function lightUp(_destination){

    for (var k in destinationMarkers) {
        
        if (destinations[k][3] == _destination) {
            
            destinationMarkers[k].setIcon(testIconHover);

            //destinationMarkers[k].setZIndex(1);
        }
        /*
        else 
            destinationMarkers[k].setZIndex();
            */
        
    }
}

function lightDown(_destination){

    for (var k in destinationMarkers) {
        
        destinationMarkers[k].setIcon(testIcon);

        //destinationMarkers[k].setZIndex(undefined);
    
    }
}

function hideDest(_typ){
    for (var k in destinations) {
        if(destinations[k][4]==_typ){
            destinationMarkers[k].setVisible(false);
        }
    }
}

function showDest(_typ){
    for (var k in destinations) {
        if(destinations[k][4]==_typ){
            destinationMarkers[k].setVisible(true);
        }
    }
}

function openInfoWin (_dest){
    
    for (var k in destinationMarkers) {
        
        if (destinations[k][3] == _dest) {
        
            infoWindows[k].open(map, destinationMarkers[k]);
            
            loadpage = "/cgi-bin/wspd_cgi.sh/pop_run_dest.p?id=" +  Lang + '|' + _dest;
            $(".hotellbubbla").load(loadpage, function(){ 
                $("#loader").hide();
            });
            
			for (var j in infoWindows){  
				if (j!=k) infoWindows[j].close();
            } 
        }
    }
}

