google.load("mootools", "1.2.1");
google.load("maps", "2");

  var gmarkers = [];


function initialize() {
  
  var map_z_offset = 3;  
  var map_zoom_levels = 4;  

  var side_bar_html = "<div class=\"float: left;\">Featured: &nbsp;<\/div>"; 
  var main_menu_html = ""; 

  var goldenIcon = new GIcon();
  goldenIcon.image = "img/icon.gif";
  goldenIcon.shadow = "img/icon_shadow.png";
  goldenIcon.iconSize = new GSize(17, 17);
  goldenIcon.shadowSize = new GSize(17, 17);
  goldenIcon.iconAnchor = new GPoint(8, 8);
  goldenIcon.infoWindowAnchor = new GPoint(8, 8);
  goldenIcon.infoShadowAnchor = new GPoint(0, 0);
  goldenIcon.transparent = "http://www.google.com/intl/en_ALL/mapfiles/markerTransparent.png";
  goldenIcon.printImage = "coldmarkerie.gif";
  goldenIcon.mozPrintImage = "coldmarkerff.gif";

  var pseudoIcon = new GIcon();
  pseudoIcon.image = "http://www.google.com/intl/en_ALL/mapfiles/markerTransparent.png";
  pseudoIcon.shadow = "http://www.google.com/intl/en_ALL/mapfiles/markerTransparent.png";
  pseudoIcon.iconSize = new GSize(17, 17);
  pseudoIcon.shadowSize = new GSize(17, 17);
  pseudoIcon.iconAnchor = new GPoint(8, 8);
  pseudoIcon.infoWindowAnchor = new GPoint(8, 8);
  pseudoIcon.infoShadowAnchor = new GPoint(0, 0);
  pseudoIcon.transparent = "http://www.google.com/intl/en_ALL/mapfiles/markerTransparent.png";
  pseudoIcon.printImage = "coldmarkerie.gif";
  pseudoIcon.mozPrintImage = "coldmarkerff.gif";


  var icons = [];
  icons[0] = goldenIcon;
  icons[1] = pseudoIcon;

      // A function to create the marker and set up the event window
function createMarker(point,name,html,icontype,zoom) {
  var marker = new GMarker(point,icons[icontype]);
  

 // GMarker.setLatLng(point)
  
  GEvent.addListener(marker, "click", function() {

  if ( map.getZoom() < zoom ) {
    map.setZoom( zoom );
  }

  map.panTo(point); 

    if ( html != '' ) {       
      point.y = point.y + 5;
//      bubble.openOnMarker( marker, html);
      map.setCenter(point);
      marker.openInfoWindowHtml(html, 512);
    }



  });

  // save the info we need to use later for the side_bar
  gmarkers.push(marker);
  // add a line to the side_bar html
  
  if ( icontype == '0') 
    side_bar_html += '<a href="javascript:myclick(' + (gmarkers.length-1) + ')">' + name + '<\/a>';
  else 
    main_menu_html += '<a href="javascript:myclick(' + (gmarkers.length-1) + ')">' + name + '<\/a> &nbsp; ';
  
  //alert( side_bar_html );
  return marker;
}


      // This function picks up the click and opens the corresponding info window


  // Read the data from example.xml
  GDownloadUrl("markers.xml", function(doc) {

  var xmlDoc = GXml.parse(doc);
  var markers = xmlDoc.documentElement.getElementsByTagName("marker");
            
          
  for (var i = 0; i < markers.length; i++) {
    // obtain the attribues of each marker
    var lat = parseFloat(markers[i].getAttribute("lat"));
    var lng = parseFloat(markers[i].getAttribute("lng"));
    var icontype = parseInt(markers[i].getAttribute("icontype")); 
    var point = new GLatLng(lat,lng);
    var html = GXml.value(markers[i].getElementsByTagName("infowindow")[0]);
    var label = markers[i].getAttribute("label");
    var zoom = markers[i].getAttribute("zoom");

    // create the marker
    var marker = createMarker(point,label,html,icontype, zoom);
      map.addOverlay(marker);
    }
    // put the assembled side_bar_html contents into the side_bar div
    document.getElementById("side_bar").innerHTML = side_bar_html;
    document.getElementById("main_menu").innerHTML = main_menu_html;

  });


function customMap() {  
    var copyCollection = new google.maps.CopyrightCollection('');  
    var copyright = new google.maps.Copyright(1, new google.maps.LatLngBounds(new google.maps.LatLng(-90, -180), new google.maps.LatLng(90, 180)), 0, "&copy; 1999 &mdash; <?=date('Y');?> Stas Kulesh");  
    copyCollection.addCopyright(copyright);  
  
    var high_level = map_z_offset - 1;  
    var low_level = map_z_offset + map_zoom_levels - 1;  
    var tilelayers = [new google.maps.TileLayer(copyCollection, high_level, low_level)];
    
    tilelayers[0].getTileUrl = CustomGetTileUrl;
      
    var custom = new google.maps.MapType(tilelayers, new google.maps.MercatorProjection(low_level + 1), "Chart", {errorMessage:"No image"});  
    return custom;  
}  
  
function CustomGetTileUrl(point, zoom) {
    return "/map_images/tiles/" + (zoom - map_z_offset + 4) + "_" + point.x + "_" + point.y  + ".jpg";  
}  


    var customType = customMap();  
    var map = new google.maps.Map2(document.getElementById("map"), {mapTypes: [customType]});  

//    bubble = new EBubble(map, "img/bubble.png",new GSize(524,302), new GSize(504,282), new GPoint(10,10), new GPoint(0,302));   

    
    var newCenter = new google.maps.LatLng(0, 0);  
    map.setCenter(newCenter, map_z_offset);  
    
    var topRight = new GControlPosition(G_ANCHOR_TOP_RIGHT, new GSize(10,10));
    map.addControl(new GLargeMapControl(), topRight);    
    //map.addControl(new GOverviewMapControl());    

    
    map.enableScrollWheelZoom();
    map.enableContinuousZoom();

    
    new GKeyboardHandler(map);
    var mapContainer = document.getElementById("map");
    
    document.getElementById('map_container').style.height =  document.body.offsetHeight + 'px';
        
    GEvent.trigger(document, "click", 
    {srcElement: mapContainer, target: mapContainer, nodeType: 1} 
    );    

// MOO PART

window.addEvent('domready', function() {
	var status = {
		'true': 'Hide help',
		'false': 'Help'
	};
	
	var status_v = {
		'true': '<span class=\"red\">CV<\/span>',
		'false': 'Works'
	};
	
	//--horizontal
	var myHorizontalSlide = new Fx.Slide('horizontal_slide', {mode: 'horizontal'});

	var myVerticalSlide = new Fx.Slide('map_container', {wrapper: 'map_container'});
	var myVerticalSlide2 = new Fx.Slide('side_bar');
	var myVerticalSlide4 = new Fx.Slide('main_menu');


	$('v_toggle').set('html', status_v[myVerticalSlide.open]);

  $('horizontal_slide').setStyle('display','block');
  $('help').setStyle('display','block');
//  myHorizontalSlide.slideOut ();
 
	$('v_toggle').addEvent('click', function(e){
		e.stop();
		myVerticalSlide.toggle();
		myVerticalSlide2.toggle();
		myHorizontalSlide.slideOut();
    myVerticalSlide4.toggle();
    if ( $('cv').getStyle('display') == 'block' ) {
        $('cv').setStyle('display','none');
    } else {
        $('cv').setStyle('display','block');
    }
	});
		
	myVerticalSlide.addEvent('complete', function() {
		$('v_toggle').set('html', status_v[myVerticalSlide.open]);
	});	
	
  
	$('horizontal_status2').set('html', status[myHorizontalSlide.open]);
	
	$('h_toggle').addEvent('click', function(e){
		e.stop();
    myHorizontalSlide.toggle();
	});

	$('h_toggle2').addEvent('click', function(e){
		e.stop();
		myHorizontalSlide.toggle();
	});
	
	$('h_toggle3').addEvent('click', function(e){
		e.stop();
		myHorizontalSlide.toggle();
	});	

	myHorizontalSlide.addEvent('complete', function() {
	$('horizontal_status2').set('html', status[myHorizontalSlide.open]);
	});
	
});      

}

google.setOnLoadCallback(initialize);
 
    function myclick (i) {
      GEvent.trigger(gmarkers[i], "click");
    }

