// Selectors
function selectPostal(el){
	$('searchPostal').value = el.options[el.selectedIndex].value;
}
function zoomPostal(el){
	if(el.value.length == 2){
		for(var x=2; x < 89; x++){
			if($('searchDistrict').options[x].value == el.value){
				$('searchDistrict').selectedIndex = x;
				return;
			}
		}
	}
}
function focusPostal(el){
	var focusArr = {'E':1, 'C': 19, 'NE': 43, 'N': 54, 'NW': 62, 'W': 71, 'S': 83, '%': 0};
	$('searchDistrict').selectedIndex = focusArr[el.value];
	$('searchPostal').value = el.value;
}

// Markers
function createMarker(id, point, name, pin_image, pin_image_over, pin_shadow, interest) {	  
	var icon = new GIcon();
	icon.image = pin_image;
	icon.shadow = pin_shadow;
	icon.iconSize = new GSize(20, 39);
	icon.shadowSize = new GSize(43, 42);
	icon.iconAnchor = new GPoint(9, 39);
	icon.infoWindowAnchor = new GPoint(5, 1);	
	
	var marker = new GMarker(point, {icon: icon});
	
	marker.tooltip = '<div class="gmap_tooltip">'+name+'</div>';
	
	if (interest)
		GEvent.addListener(marker, "click", function(){ location.href='/' + id });
	
	map.addOverlay(marker);
	
	GEvent.addListener(marker,"mouseover", function() {
		marker.setImage(pin_image_over);
		showTooltip(marker);
	});
	GEvent.addListener(marker,"mouseout", function() {			
		marker.setImage(pin_image);
		hideTooltip();
	});
	return marker;
}

function hideTooltip(){
	tooltip.style.visibility="hidden";
	currentMarker = "";
	clearTimeout(timer);
}

function showTooltip(marker){
	currentMarker = marker;
	timer = setTimeout("showTooltipNow(currentMarker)", 200);
}

function showTooltipNow(marker) {
	if (currentMarker == marker){
		tooltip.innerHTML = marker.tooltip;
		var point=map.getCurrentMapType().getProjection().fromLatLngToPixel(map.getBounds().getSouthWest(),map.getZoom());
		
		var pointup=map.getCurrentMapType().getProjection().fromLatLngToPixel(map.getBounds().getNorthEast(),map.getZoom());
		
		var offset=map.getCurrentMapType().getProjection().fromLatLngToPixel(marker.getPoint(),map.getZoom());
		var anchor=marker.getIcon().iconAnchor;
		var width=marker.getIcon().iconSize.width;
					
		var tipLeft = offset.x - point.x - anchor.x + width;
		if ((offset.x-point.x) > ( (pointup.x-point.x) / 2))
			tipLeft -= 295;
		
		var tipTop = - offset.y + point.y +anchor.y - 5;
		if ((offset.y-pointup.y) < ( (point.y-pointup.y) / 2))
			tipTop -= 150;

		var pos = new GControlPosition(G_ANCHOR_BOTTOM_LEFT, new GSize(tipLeft, tipTop)); 
		
		pos.apply(tooltip);
		tooltip.style.visibility="visible";
	}
}
function wheelevent(e){
	if (!e){
		e = window.event
	}
	if (e.preventDefault){
		e.preventDefault()
	}
	e.returnValue = false;
}
function addLoadEvent(func) { 
        var oldonload = window.onload; 
        if (typeof window.onload != 'function'){ 
        window.onload = func; 
        } else { 
                window.onload = function(){oldonload(); func(); } 
        }
}