//	function oo flatter functions
function SetMarker(MarkerID, dX, dY, strClass) { g_MapHandler.SetMarker(MarkerID, dX, dY, strClass); }
function DrawMarker(iImageID, MarkerID, iPxlX, iPxlY, strClass) { g_MapHandler.DrawMarker(iImageID, MarkerID, iPxlX, iPxlY, strClass); }
function ClearMarkers(iImageID, MarkerID) { g_MapHandler.ClearMarkers(iImageID, MarkerID); }
function SetMapImage(iImageID) { g_MapHandler.SetMapImage(iImageID); }
function DrawLabel() {g_MapHandler.DrawLabel(); }
function HereIam() {return true;}

function GetEventX(pEvent)
{
	if(pEvent == undefined)
		pEvent = window.event;
	if(pEvent.layerX != undefined) {
		return pEvent.layerX;
	}
	else if(pEvent.x != undefined) {
		return pEvent.x;
	}
	else if(pEvent.clientX != undefined) {
		return pEvent.clientX;
	}
	return null;
}

function GetEventY(pEvent)
{
	if(pEvent == undefined)
		pEvent = window.event;
	if(pEvent.layerY != undefined) {
		return pEvent.layerY;
	}
	else if(pEvent.y != undefined) {
		return pEvent.y;
	} else if(pEvent.clientY != undefined) {
		return pEvent.clientY;
	}
	return null;
}

function SetOpac (block,value) {
	block.style.opacity = value/100;
	block.style.filter = 'alpha(opacity=' + value + ')';
}


function setCookie(cookieName,cookieValue,expire) 
{
	var today = new Date();
	if(expire == null)
	{
		expire = new Date();
		var nDays= 5 * 365;
		expire.setTime(today.getTime() + 3600000*24*nDays);
	}

	document.cookie = cookieName+"="+escape(cookieValue) + ";expires="+expire.toGMTString();
}

function Show(block)
{
	block.style.display = "";
	block.style.visibility = "visible";
}

function Hide(block)
{
	block.style.display = "none";
	block.style.visibility = "hidden";
}

function ShowMapCaption(iImageID)
{
	HideMapCaption();

	if(g_arrMapData[iImageID].strGifCaption != "" && g_arrMapData[iImageID].strGifCaption != "&nbsp;")
	{
		var divCaption = $('idMapCaption');
		//SetOpac(divCaption, 80);
		divCaption.update(g_arrMapData[iImageID].strGifCaption);
		Show(divCaption);
		
	}
}

function HideMapCaption()
{
	var divCaption = $('idMapCaption');
	if(divCaption)
	{
		while(divCaption.firstChild)
			divCaption.removeChild(divCaption.firstChild);
	}
	Hide(divCaption);
}

function DrawRatioDependentData() {
	var dataHolder = $("idRatioData");
	if(dataHolder)
	{
		dataHolder.parentNode.removeChild(dataHolder);
	}
	
	var dataHolder = new Element("div", {'class': 'ratioBox'});
	dataHolder.setAttribute("id", "idRatioData");
	
//	var imgHolder = new Element("div");
//	dataHolder.insert(imgHolder);
//	imgHolder.style.position = "absolute";
//	imgHolder.style.top = "0";
//	imgHolder.style.left = "0";
//	
	var txtHolder = new Element("div");
	dataHolder.insert(txtHolder);
	txtHolder.style.position = "absolute";
	txtHolder.style.top = "0px";
	txtHolder.style.left = "0px";
	txtHolder.style.width = "60px";
	txtHolder.style.height = "20px";
	txtHolder.style.textAlign = "center";
	if (g_arrMapData[0].dMeterPerPixelX * 60 > 1000) {
		var str = g_arrMapData[0].dMeterPerPixelX * 60 / 10;
		var a = parseInt(str);
		a = a / 100;
		txtHolder.update(a + "km");
	}
	else {
		var str = g_arrMapData[0].dMeterPerPixelX * 60;
		var a = parseInt(str);
		txtHolder.update(a + "m");
	}
	
	$("idRatioPalette").insert(dataHolder);
	dataHolder.className = 'ratioBox';
}

function ShowAddress(address) {
	if (address &&
			(
			(address.arrCities.compact().length == 1 && (address.arrStreets.compact().length == 0 || address.arrStreets.compact().length == 1))) ||
			(address.arrCities.compact().length == 0)
			)
	{
		g_Srv.ShowAddress(null, address, 1);
	}
}

	function MapRefresh(mapInitParams) {
	
		/*var details = GetBlock("idDetails");
		while (details.hasChildNodes()) {
			details.removeChild(details.firstChild);
		}*/

		var palette = $("idMapPalette");
		while (palette.hasChildNodes()) {
			palette.removeChild(palette.firstChild);
		}

		$("idCoordHolder").update("");
	
		g_strSessionID = mapInitParams.m_sessionID;
		g_strAppID = mapInitParams.m_appID;
		g_strLangID = mapInitParams.m_langID;
		
		g_Babel = new Babel(mapInitParams.m_langID, mapInitParams.m_words);
	
		//g_Srv = new CommandHandler(g_webPrefix + "handler.ashx", g_strSessionID, g_strAppID, g_strLangID);
		g_MapHandler = new MapHandler(g_Srv);
		g_AddressHandler = new AddressHandler(g_Srv);


		//g_PinHandler = new PinHandler("FromNewPin");
		
		// a mapdatat lehet ki kell majd nyirni
		g_arrMapData = new Array();
		g_arrMapData[0] = mapInitParams.m_mapdata;


		var arrCountries = mapInitParams.m_countries;
		/*for (var i = 0; i < arrCountries.length; i++) {
			if (arrCountries[i].appId == g_strAppID) {
				$("idReleaseInfo").update(arrCountries[i].releaseInfo + " - " + arrCountries[i].releaseDate);
			}
		}*/

		g_userProduct = unescape(mapInitParams.m_userProduct);
		g_userLevels = mapInitParams.m_userLevels;
		
		g_numOfReports = mapInitParams.m_nReports;
//		g_pinList = new ResultBoxBehaviour(RB_PIN);
		if ($("idNAllMessages")) $("idNAllMessages").update(g_Babel.GetWord("nmessages") + ": " + mapInitParams.m_nAllMessages);

		g_pinList.Init($("idTotal"), $("idTabArea"), $("idResultArea"));

		//me.m_pinListBox.Init(ListPins, 0, mapInitParams.m_nReports, g_maxPinPerPage, 5);	// handler: ListPins, first record index 1, number of records {28}, records per page 20, num of visible page selectors 5
		g_MapHandler.SetMapImage(0);

//		g_Map.Show();
		
		g_MapHandler.AddMapPalette($("idMapPalette"));
		g_MapHandler.AddRatioPalette($("idLowerLeftPalette"));
		g_MapHandler.SetMapImage(0);
		
		g_MapHandler.SetMode(M_ZOOMRECT);

		g_MapHandler.OnDrawSlider = function() {
			DrawRatioDependentData();
			
			var div = $("divZoom0");
			for(var i=0; i<=g_MapHandler.iSliderMax; i++)
			{
				var div = $("divZoom"+i);
				if(div)
				{
					if(i < g_arrMapData[0].dZoomPercent * g_MapHandler.iSliderMax)
						div.className = "zoomer";
					else
						div.className = "zoomer_sel";
				}
			}
		}

		g_MapHandler.CanPick = function() {
			if (g_arrMapData[0].dMeterPerPixelX * 60 > 200) {
				return false;
			}
			else {
				return true;
			}
		}

		
		eval(mapInitParams.m_bootAction);
		eval(mapInitParams.m_selectedPoiIndex);
		
		//ListPins(0, Math.min(g_numOfReports, g_maxPinPerPage));
		
		var command = QueryString.get("Command", "");
		
//		if (command == "ZoomPin") {
//			var id = QueryString.get("id", "");
			
//			if (id > 0) {
//				//g_PinHandler.SelectPin(id);
//				g_Srv.CallFunction("ZoomPin", "id=" + id, 0, g_PinHandler.ZoomSelectPin, id);
//			}
//		}

	}

function MapBehaviour(arrCountries) {
	var me = this;

	this.Init = function(mapDataInitParams) {
		/*for (var i = 0; i < arrCountries.length; i++) {
			if (arrCountries[i].appId == g_strAppID) {
				$("idReleaseInfo").update(arrCountries[i].releaseInfo + " - " + arrCountries[i].releaseDate);
			}
		}*/
		CountrySelector($("country"), "", arrCountries, g_strAppID, $("idDetails"));
		g_MapHandler.AddMapPalette($("idMapPalette"));
		g_MapHandler.AddRatioPalette($("idLowerLeftPalette"));
		g_MapHandler.SetMapImage(0);

		$("idMapPalette").style.top = "5px";
		$("idMapPalette").style.right = "5px";

		g_MapHandler.SetMode(M_ZOOMRECT);

		g_MapHandler.OnDrawSlider = function() {
			DrawRatioDependentData();
			
			var div = $("divZoom0");
			for(var i=0; i<=g_MapHandler.iSliderMax; i++)
			{
				var div = $("divZoom"+i);
				if(div)
				{
					if(i < g_arrMapData[0].dZoomPercent * g_MapHandler.iSliderMax)
						div.className = "zoomer";
					else
						div.className = "zoomer_sel";
				}
			}
		}

		g_MapHandler.CanPick = function() {
			if (g_arrMapData[0].dMeterPerPixelX * 60 > 200) {
				return false;
			}
			else {
				return true;
			}
		}

		$("idFace").observe('mousedown', function(event) { g_MapHandler.OnMouseDown(0, event); });
		$("idFace").observe('mouseup', function(event) { g_MapHandler.OnMouseUp(0, event); });
		$("idFace").observe('mouseout', function (event) { g_MapHandler.OnMouseOut(0, event); });
		$("idFace").observe('mousemove', function (event) { g_MapHandler.OnMouseMove(0, event); });

		DrawRatioDependentData();

	}

	me.Init(arrCountries);
}