
var jsonObj, labelObj, currentID = '', currentClass = '';

function thisMovie(movieName) {
	if (navigator.appName.indexOf("Microsoft") != -1) return window[movieName];
	else return document[movieName];
}

function showRoute(id) { thisMovie("flexgmap").showRoute(id) }
function loadRoutes() { thisMovie("flexgmap").loadRoutes() }
function removeAllMarker() { thisMovie("flexgmap").removeAllMarker() }
function loadCities() { thisMovie("flexgmap").loadCities() }
function loadXMLData() { thisMovie("flexgmap").loadXMLData() }
function setGmapLoactionByLatLng(lat,lng,html) { thisMovie("flexgmap").setGmapLoactionByLatLng(lat,lng,html) }
function searchCityMarker(cityID) { thisMovie("flexgmap").searchCityMarker(cityID) }
function setGmapLoactionByID(id) { thisMovie("flexgmap").setGmapLoactionByID(id) }

function insertMap(data) {
	labelObj = $.evalJSON(data);
	resetAll();
	$("#map-checkbox-form input").attr("disabled",false);

	var so = new SWFObject("programs/gmap/release/VisitpecsMap.swf", "flexgmap", "100%", "100%", "8", "#ffffff");

	so.addParam("quality", "hight");
	so.addParam("salign", "t");
	so.addParam("allowScriptAccess", "always");
	so.addParam("allowFullScreen", "true");
	so.addParam("menu", "false");

	so.addVariable("mapKey", key);
	so.addVariable("xmlPath", xmlPath);
	so.addVariable("cityXMLPath",cityXMLPath);
	so.addVariable("defaultZoom", defaultZoom);
	so.addVariable("szolgaltatoPath", szolgaltatoPath);
	so.addVariable("telepulesPath", telepulesPath);
	so.addVariable("regioPath", regioPath);
	so.addVariable("kistersegPath", kistersegPath);
	so.addVariable("megyePath", megyePath);
	so.addVariable("routeXMLPath", routeXMLPath);

	so.write("map");
}

function onGmapReady() {
	$("#map-checkbox-form input[type='checkbox']").click(initSearch);
	$("#alapallapot").click(function(){ resetAll(); setGmapLoactionByLatLng(defLat,defLong,"") })
	$("#map-checkbox-form").submit(function(event){event.preventDefault()})
	.find("#localityName").autocomplete('programs/gmapajax/getLocalities.php', {
		matchContains: false,
		max : 20,
		width: 200,
		formatItem: formatItem,
		formatResult: formatResult,
		extraParams: {postfix: labelObj['landscapePostfix']}
	})
	.result(function(event,data) {
		if(data) {
			$("#localityID").val(data[1]);
			$("#localityType").val(data[2]);
		}
		else {
			$(this).val('');
			$("#localityID").val('');
			$("#localityType").val('');
		}
		if(currentID != $("#localityID").val() || currentClass != $("#localityType").val()) {
			currentID = $("#localityID").val();
			currentClass = $("#localityType").val();

			initSearch();
			//console.debug($("#localityID").val() + ', ' + $("#localityType").val());
		}
	})
	.blur(function() { $(this).search() });

	loc = location.href;
	var mtypeStart = loc.indexOf("mtype");
	if(mtypeStart == -1) {
		setGmapLoactionByLatLng(defLat,defLong,"");
	}
	else {
		var getParams = loc.substr(mtypeStart);
		var paramsArray = getParams.split("&");
		var lat = paramsArray[2].replace("lat=","");
		var lng = paramsArray[3].replace("lng=","");
		setGmapLoactionByLatLng(lat,lng,"");
		var id = paramsArray[1].replace("id=","");
		$.post("programs/gmapajax/GetPartnerById.php",{id:id,lat:lat,lng:lng},resultHandler);
	}
}

function formatItem(row) {
	return row[0] + (row[2] == 'landscape' ? labelObj['landscapePostfix'] : '');
}
function formatResult(row) {
	return row[0] + (row[2] == 'landscape' ? labelObj['landscapePostfix'] : '');
}

function initSearch() {
	var searchData = $("#map-checkbox-form").serialize();
	$("#map-checkbox-form input").attr("disabled",true);
	$("#partnerNumber").html(labelObj["wait"]);
	$.post("programs/gmapajax/PartnerList.php",searchData,resultHandler);
}

function resultHandler(data) {
	$("#map-result").empty();
    if (data != "") {
		setGmapLoactionByLatLng(defLat,defLong,"");
        jsonObj = $.evalJSON(data);
        loadXMLData();
    }
	else {
        $("#partnerNumber").html(labelObj["searcEmpySzolg"]);
        removeAllMarker();
        $("#map-checkbox-form input").attr("disabled",false);
    }
}

function showVisiblePartners(partnersID) {
	var partnerIDArray = partnersID.split("|");
	var content = '';

	baseSize();

	for(var n in jsonObj) {
		var kategoria = n;
		var vanIlyen = false;
		var partners = new Array();

		for(var n2 in jsonObj[n]) {
			for(i = 0;i < partnerIDArray.length;i++)
				if(partnerIDArray[i] == jsonObj[n][n2]["partnerid"]) {
					vanIlyen = true;
					partners.push(jsonObj[n][n2]);
					break;
				}
		}

		if(vanIlyen) {
			content += '<h1>' + kategoria + '</h1><table cellspacing="3"><tr>';
			for(i = 0;i < partners.length;i++) {
				content += '<td><a href="#mapAnchor" id="anchor_' + partners[i]["partnerid"] + '" class="anchorLink" title="Helye a térképen..."><img src="template/images/show.png" width="16" height="16" style="vertical-align: middle" alt="H" /></a>';
				content += ' <a href="' + szolgaltatoPath + '?ID=' + partners[i]["partnerid"] + '" title="Adatlap" target="_blank">' + partners[i]["name"]  + '</a></td>';
				if(i % 2) content += '</tr><tr>';
			}
			content += "</tr></table>";
		}
	}

	$("#map-result").html(content);
	$("a.anchorLink").anchorAnimate();

	var partnerCountText = (partnersID == "") ? labelObj["searcEmpySzolg"] :  labelObj["sum"] +  partnerIDArray.length + labelObj["szolgCountLabel"];
	$("#partnerNumber").html(partnerCountText);

	$("#map-result .anchorLink").click(function(){
		var id = $(this).attr("id").replace("anchor_","");
		setGmapLoactionByID(id);
	});

	$("#map-checkbox-form input").attr("disabled",false);
}

function resetAll() {
    $("#map-checkbox-form input[type=checkbox]").attr("checked",false);
	$("#map-checkbox-form input[type=text]").val('');
	$("#map-checkbox-form input[type=hidden]").val('');
    $("#map-result").empty().html(labelObj['idleNote']);
	$("#partnerNumber").html('');
}

function getCheckedCount() {
	var counter = 0;
	$(".groupChk").each(function(){
		if($(this).attr('checked')){
			counter++;
		}
	})
	return counter;
}

function changeSize() { $("#map").css("height",812) }
function baseSize() { $("#map").css("height",512) }

