﻿function switchCheck(elem) {

	var retVal = true;
	if (elem) {
		if (elem.className.indexOf("active") != -1) {
			elem.className = "checkbox";
			retVal = false;
		} else {
			elem.className = "checkbox_active";
		}
	}
	return retVal;

}

function showhideInfoLayer(layername, elem, query, partialrendering) {


	if (!xmap) return;

	var retVal = switchCheck(elem);

	var mapObj = xmap.getMapObject();
	switch (layername.toUpperCase()) {
		case "TRAFFIC":
			mapObj.showTraffic(!mapObj.showTraffic());
			mapObj.Update();
			break;
		case "ROADWORK":
			mapObj.showRoadwork(!mapObj.showRoadwork());
			mapObj.Update();
			break;
		case "RADAR":
			mapObj.showRadar(!mapObj.showRadar());
			mapObj.Update();
			break;
		case "GEOMETRY":
			if (Array.contains(mapObj.get_layers(), "GEOMETRY" + "$" + query)) {
				Array.remove(mapObj.get_layers(), "GEOMETRY" + "$" + query);
			} else {
				Array.add(mapObj.get_layers(), "GEOMETRY" + "$" + query);
			}
			mapObj.Update();
			break;
		case "POI":
			loadMapObjects(layername + '$' + query, query, partialrendering);
			break;
		default:
			loadMapObjects(layername, query);
			break;
	}
	if (retVal) {
		TrackPageView("tab:", layername + ((query != null && query != "") ? ":" + query : ""));
	}
	return retVal;
}

function loadMapObjects(layername, query, partialrendering) {
	if (!xmap) return;
	var mapObj = xmap.getMapObject();

	var obj = mapObj.get_layermanager().Find(layername.toLowerCase());
	if (!obj) {
		obj = mapObj.get_layermanager().AddLayer(layername.toLowerCase());
		//if (partialrendering!=null) {
			obj.set_partialloading(partialrendering);
		//}
		obj.add_updated(OnLayerUpdated);
		obj.add_unload(OnLayerUnload);
		if (query) {
			obj.set_searchquery(query);
		}
		obj.Update(mapObj.get_mapview().get_viewrect());
	} else {
		mapObj.get_layermanager().Remove(layername.toLowerCase());
	}
}

function OnLayerUpdated(sender, evt) {
	switch (sender.get_id().toLowerCase()) {
		case "news":
			{
				if (typeof (OnNewsFeedUpdated) != 'undefined') {
					OnNewsFeedUpdated(sender, evt);
				}
				break;
			}
		case "ilocal":
			{
				if (typeof (OnILocalUpdated) != 'undefined') {
					OnILocalUpdated(sender, evt);
				}
				break;
			}


	}
}
function OnLayerUnload(sender, evt) {
	switch (sender.get_id().toLowerCase()) {
		case "news":
			{
				if (typeof (OnNewsFeedUnload) != 'undefined') {
					OnNewsFeedUnload(sender, evt);
				}
				break;
			}

		case "ilocal":
			{
				if (typeof (OnILocalUnload) != 'undefined') {
					OnILocalUnload(sender, evt);
				}
				break;
			}

	}
}




