//<![CDATA[
var icPath = "/assets/images/icons/";
var evMap;
var fMarker = EventMap_makeIcon("flag","flag_sh",33,30,33,30,5,29,15,1);

var formLat;
var formLon;
var formDisp;

function gmMakeMap(mapName,lat,lon,zoom,frmLat,frmLon,frmDisp) {
	evMap = new GMap2(getID(mapName));
	evMap.addControl(new GLargeMapControl());
	evMap.addControl(new GMapTypeControl());
	formLat = getID(frmLat);
	formLon = getID(frmLon);
	formDisp = getID(frmDisp);
	
	if(formLat.value != 0) {
		var ptCenter = new GLatLng(51,-112);
		var iName = icPath + "/" + "flag";
		var iNameSh = icPath + "/" + "flag_sh";


		evMap.setCenter(ptCenter,11);

		var _mkr = new GMarker(ptCenter,fMarker);
		evMap.addOverlay(_mkr);
	}
	else {
		var ptCenter = new GLatLng(lat,lon);
		evMap.setCenter(ptCenter,zoom);
	}	

	GEvent.addListener(evMap,'click',function(overlay, point) {
		MapFn_addMarker(point,true);
	});
}
function gmMakeSimpleMap(mapName,lat,lon) {
	evMap = new GMap2(getID(mapName));
	evMap.addControl(new GSmallMapControl());
	
	var ptCenter = new GLatLng(lat,lon);
	var iName = icPath + "/" + "flag";
	var iNameSh = icPath + "/" + "flag_sh";

	evMap.setCenter(ptCenter,14);
	var _mkr = new GMarker(ptCenter,fMarker);
	evMap.addOverlay(_mkr);
}
function MapFn_addMarker( point,doUpdate ) {
	evMap.clearOverlays();
	if(formLat != undefined && point != undefined) {
		if(doUpdate) {
			formLat.value = point.y;
			formLon.value = point.x;
		}
		if(formDisp)
			formDisp.innerHTML = "coordinates: " + toPrecision( point.y, 4 ) + " x " + toPrecision( point.x, 4 );
	}
	else {
		if(doUpdate) {
			formLat.value = 0;
			formLon.value = 0;
		}
		if(formDisp)
			formDisp.innerHTML = "";
	}

	// no point coord's returned
	var iName = icPath + "/" + "flag";
	var iNameSh = icPath + "/" + "flag_sh";
	var _mkr = new GMarker(point,fMarker);
	evMap.addOverlay(_mkr);
}
/*-------------------------------------*/
function Map_clear() {
	evMap.clearOverlays();
}
/*-------------------------------------*/
function MapFn_changePos(frmID,frmBlock) {
	var formBlock = getID(frmBlock);

	if(formBlock.style.visibility == 'hidden')
		return;
	
	var selectedItem = getID(frmID).selectedIndex;
	var selectedObj = getID(frmID).options[selectedItem];
	var latLon = selectedObj.label.split('|');
	var ptCenter = new GLatLng(latLon[0],latLon[1]);
//	alert(latLon[0]);
	evMap.setCenter(ptCenter,11);
}
/*-------------------------------------*/
function EventMap_makeIcon(iPath,sPath,w,h,sw,sh,ix,iy,wx,wy) {
	var nIcon = new GIcon();
	nIcon.image = icPath + iPath + ".png";
	if(sPath.length > 0)
		nIcon.shadow = icPath + sPath + ".png";
	nIcon.iconSize = new GSize(w,h);
	if(sPath.length > 0)
		nIcon.shadowSize = new GSize(sw,sh);

	nIcon.iconAnchor = new GPoint(ix,iy);
	nIcon.infoWindowAnchor = new GPoint(wx,wy);
	return nIcon;
}
function EventMap_hideOnZoom( df ) {
	if(df) {
		MapFn_showDir( false );
	}
	else {
		MapFn_showDir( _cRoute.dir );
	}
	MapFn_showMMarkers();
}
function showHideMap(frmID,frmBlock,lat,lon) {
	Map_clear();
	if( lat != '' & lat != 0) {
		var ptCenter = new GLatLng(lat,lon);
		MapFn_addMarker(ptCenter,true);
	}
	var selectedItem = getID(frmID).selectedIndex;
	if(selectedItem == 0)
		alert("You must select a city first!");
	else {
		var formBlock = getID(frmBlock);
		formBlock.style.visibility = formBlock.style.visibility == 'visible' ? 'hidden' : 'visible';
		if(formBlock.style.visibility == 'visible')
			MapFn_changePos(frmID,frmBlock);
	}
}
function showMap(frmBlock,lat,lon) {
	if( lat != '' & lat != 0) {
		var ptCenter = new GLatLng(lat,lon);
		MapFn_addMarker(ptCenter,true);
		formBlock.style.visibility = formBlock.style.visibility == 'visible' ? 'hidden' : 'visible';
	}
	var ptCenter = new GLatLng(lat,lon);
	evMap.setCenter(ptCenter,zoom);
}
function message(mess) {
//	alert("message");
	alert(mess);
}
function getID(idName) {
    return document.getElementById(idName);
}
function trace(m) {
	alert(m);
}
// precision
function toPrecision(useN,useP) {
	var wH = parseInt(useN);
	var pR = Math.round((useN-wH)*Math.pow(10,useP))/Math.pow(10,useP);
	return (wH + pR);
}
//]]>