function customCreateMarker(point, name, desc, style) {
  //var icon = new GIcon();
  var myvar= exml.myvar;
  var markeroptions = exml.opts.markeroptions || {};
  var icontype = exml.opts.icontype || "style";
  if (icontype == "style") {
    if (!!exml.styles[style]) {
      icon = exml.styles[style];
    }
  }
  //if (!markeroptions.icon) {
    markeroptions.icon = icon;
  //}
  markeroptions.title = name;
  var m = new GMarker(point, markeroptions);
  var html = "<div class\"marker\">"+name+"<br />"+desc+"</div>";
  GEvent.addListener(m, "click", function() {
    m.openInfoWindowHtml(html);
  });
  map.addOverlay(m);
}

/* start initialisation */
Event.observe(window,'load',function(event){
	
	$$('a.locate').each(function(elmt){
		
		Event.observe(elmt,'click',Offices.changeLocation);
		
		});
	});
/* end initialisation */

/* start offices object */
var Offices = {
	
	changeLocation:function(e)
		{
		var target = Event.element(e);
		var vcard = target.up('.vcard');
		var lat = vcard.getElementsByClassName('lat')[0].value;
		var lng = vcard.getElementsByClassName('lng')[0].value;
		var desc = vcard.getElementsByClassName('desc')[0].value;
		var hours = vcard.getElementsByClassName('hours')[0].value;
		var name = vcard.getElementsByClassName('fn')[0].value;
		var office_id = target.id.split("office_")[1];
		var zoom = vcard.getElementsByClassName('zoom')[0].value;
		
		
		Offices.unselectAll();
		vcard.addClassName('active');
		$('office_name').update(name);
		
		/*** map management ***/
		myGroup.showMarker(office_id);
                marker = myGroup.markers[office_id];
                point = marker.getPoint();
                map.setCenter(point);
                map.setZoom(zoom * 1);
		/*** end mag management ***/
                
		Event.stop(e);
		},
	
	unselectAll:function()
		{
		$$('div.vcard').each(function(elmt){ elmt.removeClassName('active'); });
		}
	
	}
/* end offices object */