var ge;
var placemarks = [];

//Note:
/*
    Latitude: Smaller number will move left, larger will move right
    Longitude: 
    zoom: smaller - zoom in, larger - zoom out
	Use google earth to help coordinate the finding process
*/

var properties = [];

properties['westin_maui'] = {lat: 20.920019, lon: -156.695491, rotation: 90, altitude: 70, zoom: 180, 
    markers: [
        {label: 'Westin Maui', content: "Westin Maui", lat:  20.919854, lon: -156.695514}
    ]
};

currProperty = "";
google.load("earth", "1");

function loadGE(property) {
    currProperty = property;
    if(!properties[currProperty])
        return;
    
    document.getElementById('map3d').innerHTML = '';
    google.earth.createInstance('map3d', initCallback, failureCallback);
}

function initCallback(instance) {
    ge = instance;
    ge.getWindow().setVisibility(true);

    // add a navigation control
    ge.getNavigationControl().setVisibility(ge.VISIBILITY_AUTO);

    // add some layers
    ge.getLayerRoot().enableLayerById(ge.LAYER_BORDERS, true);
    ge.getLayerRoot().enableLayerById(ge.LAYER_ROADS, true);

    //fly to Hilton Anaheim
    var la = ge.createLookAt('');
    
    var property = properties[currProperty];
    
    la.set(property.lat, property.lon, 18, ge.ALTITUDE_RELATIVE_TO_GROUND, property.rotation, property.altitude, property.zoom);
    ge.getView().setAbstractView(la);

    ge.getLayerRoot().enableLayerById(ge.LAYER_BUILDINGS, true);


    for(var i = 0; i < property.markers.length; i++)
    {
    
        var obj = property.markers[i];
        createPlacemark(obj.label, obj.content, obj.lat, obj.lon);
    }
}

function failureCallback(errorCode) {
}



function createPlacemark(label, content, lat, lon) {
    var placemark = ge.createPlacemark('');
    placemark.setName(label);
    ge.getFeatures().appendChild(placemark);
    placemark.setDescription(content);


    // Create style map for placemark
    var icon = ge.createIcon('');
    icon.setHref('http://maps.google.com/mapfiles/kml/paddle/red-circle.png');
    var style = ge.createStyle('');
    style.getIconStyle().setIcon(icon);
    placemark.setStyleSelector(style);

    // Create point
    var la = ge.getView().copyAsLookAt(ge.ALTITUDE_RELATIVE_TO_GROUND);
    var point = ge.createPoint('');
    point.setLatitude(lat);
    point.setLongitude(lon);
    placemark.setGeometry(point);
    
    google.earth.addEventListener(placemark, 'click', function(event) {
        // prevent the default balloon from popping up
        event.preventDefault();

        var balloon = ge.createHtmlStringBalloon('');
        balloon.setFeature(event.getTarget());
        balloon.setMaxWidth(300);
        balloon.setContentString(content);
        ge.setBalloon(balloon);
    });
}