// BOOKMARK
function bookmark_us(url, title){
if (window.sidebar) // firefox
    window.sidebar.addPanel(title, url, "");
else if(window.opera && window.print){ // opera
    var elem = document.createElement('a');
    elem.setAttribute('href',url);
    elem.setAttribute('title',title);
    elem.setAttribute('rel','sidebar');
    elem.click();
}else if(document.all)// ie
    window.external.AddFavorite(url, title);
}

// FORM
function valid(form){
  if (form.email.value == ""){
    alert("You haven't fill the email.");
    form.email.focus();
    return (false);
  }
  if (form.email.value.search( /^[a-zA-Z]+([_\.-]?[a-zA-Z0-9]+)*@[a-zA-Z0-9]+([\.-]?[a-zA-Z0-9]+)*(\.[a-zA-Z]{2,4})+$/ ) == -1){
	alert("Invalid email address.");
	return false;
	}
  if (form.subjek.value == ""){
    alert("You haven't fill the subject.");
    form.subjek.focus();
    return (false);
  }
  if (form.pesan.value == ""){
    alert("You haven't fill the message.");
    form.pesan.focus();
    return (false);
  }
  return (true);
}
//GMAPS
var side_bar_html = "";
      var gmarkers = [];
      var htmls = [];
      var i = 0;

var iconRestaurant = new GIcon(); 
    iconRestaurant.image = 'images/restaurant.png';
    iconRestaurant.shadow = 'images/shadow.png';
    iconRestaurant.iconSize = new GSize(20, 34);
    iconRestaurant.shadowSize = new GSize(37, 34);
    iconRestaurant.iconAnchor = new GPoint(9, 34);
    iconRestaurant.infoWindowAnchor = new GPoint(9, 2);

var iconHotel = new GIcon(); 
    iconHotel.image = 'images/hotel.png';
    iconHotel.shadow = 'images/shadow.png';
    iconHotel.iconSize = new GSize(20, 34);
    iconHotel.shadowSize = new GSize(37, 34);
    iconHotel.iconAnchor = new GPoint(9, 34);
    iconHotel.infoWindowAnchor = new GPoint(9, 2);

var iconShop = new GIcon(); 
    iconShop.image = 'images/shop.png';
    iconShop.shadow = 'images/shadow.png';
    iconShop.iconSize = new GSize(20, 34);
    iconShop.shadowSize = new GSize(37, 34);
    iconShop.iconAnchor = new GPoint(9, 34);
    iconShop.infoWindowAnchor = new GPoint(9, 2);
    
var iconVilla = new GIcon(); 
    iconVilla.image = 'images/villa.png';
    iconVilla.shadow = 'images/shadow.png';
    iconVilla.iconSize = new GSize(20, 34);
    iconVilla.shadowSize = new GSize(37, 34);
    iconVilla.iconAnchor = new GPoint(9, 34);
    iconVilla.infoWindowAnchor = new GPoint(9, 2);
    
var iconSpa = new GIcon(); 
    iconSpa.image = 'images/spa.png';
    iconSpa.shadow = 'images/shadow.png';
    iconSpa.iconSize = new GSize(20, 34);
    iconSpa.shadowSize = new GSize(37, 34);
    iconSpa.iconAnchor = new GPoint(9, 34);
    iconSpa.infoWindowAnchor = new GPoint(9, 2);
    
var iconLounge = new GIcon(); 
    iconLounge.image = 'images/lounge.png';
    iconLounge.shadow = 'images/shadow.png';
    iconLounge.iconSize = new GSize(20, 34);
    iconLounge.shadowSize = new GSize(37, 34);
    iconLounge.iconAnchor = new GPoint(9, 34);
    iconLounge.infoWindowAnchor = new GPoint(9, 2);
    
var iconMM = new GIcon(); 
    iconMM.image = 'images/mixmedia.png';
    iconMM.shadow = 'images/shadow.png';
    iconMM.iconSize = new GSize(20, 34);
    iconMM.shadowSize = new GSize(37, 34);
    iconMM.iconAnchor = new GPoint(9, 34);
    iconMM.infoWindowAnchor = new GPoint(9, 2);

var customIcons = [];
    customIcons["restaurant"] = iconRestaurant;
    customIcons["hotel"] = iconHotel;
    customIcons["shop"] = iconShop;
    customIcons["villa"] = iconVilla;
    customIcons["spa"] = iconSpa;
    customIcons["lounge"] = iconLounge;
    customIcons["mixmedia"] = iconMM;
function myclick(i) {
	gmarkers[i].openInfoWindowHtml(htmls[i]);
}

// Load Gmap
    function load() {
      if (GBrowserIsCompatible()) {
        var map = new GMap2(document.getElementById("map"));
        map.addControl(new GLargeMapControl());
        map.addControl(new GMapTypeControl());
        map.setCenter(new GLatLng(-8.499537408989404, 115.6036376953125), 9);
        GDownloadUrl("freemapgmap1.php", function(data) {
          var xml = GXml.parse(data);
          var markers = xml.documentElement.getElementsByTagName("marker");
          for (var i = 0; i < markers.length; i++) {
            var name = markers[i].getAttribute("name");
            var pics = markers[i].getAttribute("pics");
            var address = markers[i].getAttribute("address");
            var type = markers[i].getAttribute("type");
            var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
                                    parseFloat(markers[i].getAttribute("lng")));
            var marker = createMarker(point, name, pics, address, type);
            map.addOverlay(marker);
          }
          document.getElementById("side_bar").innerHTML = side_bar_html;

        });
      }
    }

    function createMarker(point, name, pics, address, type) {
      var marker = new GMarker(point, customIcons[type]);
      var imgs = "<img width=150 height=100 border=0 src='images/"+ pics + "' >";
      var html = "<b>" + name + "</b> <br/>"+ imgs+ "<br/>" + address;
      GEvent.addListener(marker, 'click', function() {
        marker.openInfoWindowHtml(html);
      });
        gmarkers[i] = marker;
        htmls[i] = html;
        side_bar_html += ' <a href="javascript:myclick(' + i + ')">' + name + '<\/a><hr>';
        i++;
      return marker;
    }

// Search Nama
function searchNama(){
	side_bar_html = "";
	var kata = document.getElementById('namaInput').value;
	if (GBrowserIsCompatible()) {
        var map = new GMap2(document.getElementById("map"));
        map.addControl(new GLargeMapControl());
        map.addControl(new GMapTypeControl());
        map.setCenter(new GLatLng(-8.710829, 115.179520), 13);
		var carikata = 'freemapgmap2.php?kata=' + kata;
        GDownloadUrl(carikata, function(data) {
          var xml = GXml.parse(data);
          var markers = xml.documentElement.getElementsByTagName("marker");
          for (var i = 0; i < markers.length; i++) {
            var name = markers[i].getAttribute("name");
            var pics = markers[i].getAttribute("pics");
            var address = markers[i].getAttribute("address");
            var type = markers[i].getAttribute("type");
            var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
                                    parseFloat(markers[i].getAttribute("lng")));
            var marker = createMarker(point, name, pics, address, type);
            map.addOverlay(marker);
          }
          document.getElementById("side_bar").innerHTML = side_bar_html;

        });
      }
      alert(address + ' not found');
}


// Maps V3
function initialize() {
  var myOptions = {
    zoom: 13,
    mapTypeId: google.maps.MapTypeId.ROADMAP
  };
  map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
  
  // Try W3C Geolocation method (Preferred)
  if(navigator.geolocation) {
    browserSupportFlag = true;
    navigator.geolocation.getCurrentPosition(function(position) {
      initialLocation = new google.maps.LatLng(position.coords.latitude,position.coords.longitude);
      contentString = "Location found using W3C standard";
      map.setCenter(initialLocation);
      infowindow.setContent(contentString);
      infowindow.setPosition(initialLocation);
      infowindow.open(map);
    }, function() {
      handleNoGeolocation(browserSupportFlag);
    });
  } else if (google.gears) {
    // Try Google Gears Geolocation
    browserSupportFlag = true;
    var geo = google.gears.factory.create('beta.geolocation');
    geo.getCurrentPosition(function(position) {
      initialLocation = new google.maps.LatLng(position.latitude,position.longitude);
      contentString = "Location found using Google Gears";
      map.setCenter(initialLocation);
      infowindow.setContent(contentString);
      infowindow.setPosition(initialLocation);
      infowindow.open(map);
    }, function() {
      handleNoGeolocation(browserSupportFlag);
    });
  } else {
    // Browser doesn't support Geolocation
    browserSupportFlag = false;
    handleNoGeolocation(browserSupportFlag);
  }
}

function handleNoGeolocation(errorFlag) {
  if (errorFlag == true) {
    initialLocation = newyork;
    contentString = "Error: The Geolocation service failed.";
  } else {
    initialLocation = siberia;
    contentString = "Error: Your browser doesn't support geolocation. Are you in Siberia?";
  }
  map.setCenter(initialLocation);
  infowindow.setContent(contentString);
  infowindow.setPosition(initialLocation);
  infowindow.open(map);
}

