function addEvent(e, evType, fn) {
	if(e.addEventListener) { e.addEventListener(evType, fn, false); return true; } 
	else if (e.attachEvent) { var r = e.attachEvent('on'+evType, fn); return r; }
	else { return false; }
}

function stopEvent(event) {
  var event = event || window.event;
  if(event.preventDefault) {
	event.preventDefault();
	event.stopPropagation();
  }
  else {
	event.returnValue = false;
    event.cancelBubble = true;
  }
}

function createMarker(point, txt) {
	var opt = { maxWidth: 400 };		
	var marker = new GMarker(point);  
    GEvent.addListener(marker, "click", function() {
		marker.openInfoWindowHtml(txt, opt);
  	});
  	return marker;
}

function initgmap(lat, long, text) {
  if (GBrowserIsCompatible()) {
	var map = new GMap2(document.getElementById('gmap'));
	map.addControl(new GLargeMapControl());
	map.addControl(new GMapTypeControl());
	var point = new GLatLng(lat, long);
	map.setCenter(point, 13);
	map.addOverlay(createMarker(point, text));
  }
}

var zoom = false;

function removeZoom() {
	if(zoom) {
		document.body.removeChild(zoom);
		zoom = false;
		return true;
	}
	return false;
}

function getXhr() {
  try { return new XMLHttpRequest(); } catch (e) { } // Standard
  try { return new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { }
  try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) { }
  return null;
}

function initPage() {
	var liens = document.getElementsByTagName('a');
	for(var i=0;i<liens.length;i++) {
		var lien = liens[i];
		if(lien.rel) {
			var rel = lien.rel.split('|');
			if(rel[0]=='zoom') {
				addEvent(lien, 'click', function(url, w, h) {
					return function(event) {
						stopEvent(event);
						removeZoom();
						zoom = document.createElement('div');
						zoom.style.position = 'absolute';
						zoom.style.width = w + 'px';
						zoom.style.height = h + 'px';
						zoom.style.left = '50%';
						zoom.style.top = '50px';
						zoom.style.marginLeft = '-' + Math.round(w/2) + 'px';
						zoom.style.background = '#fff url(' + url + ') no-repeat center';
						zoom.style.padding = '8px';
						zoom.style.border = '1px solid black';
						document.body.appendChild(zoom);
					};
				}(lien.href, rel[1], rel[2]));
			}
		}
	}
	addEvent(document.body, 'click', function(event) { 
		if(removeZoom()) stopEvent(event);
	});
	addEvent(window, 'load', function(event) { 
		var xhr = getXhr();
		xhr.open("POST", "/stats.php", true);
		xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
		var info = '';
		var v = encodeURIComponent(info);
		xhr.send('data=' + v);
	});
}
