function initialize() {
    if (GBrowserIsCompatible()) {
        var map = new GMap2(document.getElementById("map"));
        map.setCenter(new GLatLng(28,15), 2);
        map.addControl(new GLargeMapControl3D());

	map.setMapType(G_HYBRID_MAP);

        var bounds = new GLatLngBounds();

        var arrayList = $(".point");  // set of elements with class 'point'
	var currentPoint = $("#currentpoint").html();
	var onFirstPage = "true";
	if (currentPoint != '')
	{
		var currPoint= currentPoint.splitCSV();
                  var lat = parseFloat(currPoint[0]);
                  var lon = parseFloat(currPoint[1]);

		var point = new GLatLng(lat, lon);
		map.setCenter(point , 4);

		onFirstPage = "false";
	}

        $.each(arrayList, function() {
            var value = $(this).html();
            value = $.trim(value);

            //var point = value.split(',');
            var point = value.splitCSV();
            var lat = parseFloat(point[0]);
            var lon = parseFloat(point[1]);
            var name = point[3];
	   var content = point[4];
	   var url = point[5];
            var point = new GLatLng(lat, lon);
            bounds.extend(point);

            map.addOverlay(createMarker(point, name, content, url, onFirstPage));

        });

        createPolyline(arrayList);

    }

function createMarker(latlng, name, content, url, onFirstPage) {

    var marker = new GMarker(latlng, {title:name});
    marker.name = name;
    GEvent.addListener(marker, "click", function() {

	if (onFirstPage == "true")
	{
		window.location = "http://www.dittaventyr.com" + url;

	}
	else {        	
         map.panTo(latlng);

	document.getElementById('markerheader').innerHTML= "<h1>" + name + "</h1>";
	Cufon.replace('#content h1');
	document.getElementById('markertext').innerHTML= content;
	}
    });

    return marker;
}

function createPolyline(arrayList) {
    var colour = "#ee751e";
    var width = 2;
    var pts = [];
    var count = 0;
    $.each(arrayList, function() {
        var value = $(this).html();
        value = $.trim(value);

        //var point = value.split(',');
        var point = value.splitCSV();
        var lat = parseFloat(point[0]);
        var lon = parseFloat(point[1]);
        pts[count] = new GLatLng(lat, lon);
        count = count + 1;
    });
    map.addOverlay(new GPolyline(pts, colour, width, 1));
}

}
String.prototype.splitCSV = function(sep) {
  for (var foo = this.split(sep = sep || ","), x = foo.length - 1, tl; x >= 0; x--) {
    if (foo[x].replace(/"\s+$/, '"').charAt(foo[x].length - 1) == '"') {
      if ((tl = foo[x].replace(/^\s+"/, '"')).length > 1 && tl.charAt(0) == '"') {
        foo[x] = foo[x].replace(/^\s*"|"\s*$/g, '').replace(/""/g, '"');
      } else if (x) {
        foo.splice(x - 1, 2, [foo[x - 1], foo[x]].join(sep));
      } else foo = foo.shift().split(sep).concat(foo);
    } else foo[x].replace(/""/g, '"');
  } return foo;
};
