/**
 * @author g.vlahakis
 */


	var mapObj = null;
	var _geo = new telenavis.Geocoder("geo");
	
	function onLoad()
	{
		var center = new telenavis.Point(320500.63, 4359221.61);
		var zoom = 4.14;
		
		mapObj = new telenavis.JsMap("map","mapDiv",center, zoom);
		
		addReportProblem();
		getPOICategories();
		
		telenavis.Router.routeOptimizationType = "time";
		telenavis.Router.routingType = "car";
	    mapObj.getContextMenu().getMenuItem("RouteMenu").onRoute = showRouteInstructions;
	    
		mapObj.getContextMenu().getMenuItem("RouteMenu").onRoute = showRouteInstructions;
	
		var _toolbar = mapObj.getToolbar();
		_toolbar.movable = false;
		//_toolbar.removeTool("info");
		mapObj.getToolbar().getTool("info").onClicked = infoToolClicked;
		
		mapObj.showSatellite = false;
		mapObj.showHybrid = false;		
		mapObj.onMapLoaded = mapLoaded;
		mapObj.getToolbar().setCurrentTool("pan");
		
		
		document.getElementById("addressInput").onkeypress=geocodeKeyPress;
	}
	
	function normMap() {
		mapObj.showSatellite = false;
		mapObj.showHybrid = false;
		loadSatellite();
		buts();
	}
	
	function hybridSwitch() {
		mapObj.showSatellite = false;
		mapObj.showHybrid = !mapObj.showHybrid;
		
		loadSatellite();
		
		buts();				
	}
	
	function buts() {
		var _div = document.getElementById("satMap");
		if (mapObj.showSatellite) {
			_div.style.backgroundColor = "lightgreen";	
		} else {
			_div.style.backgroundColor = "white"; 
		}	
		var _div2 = document.getElementById("hybridMap");
		if (mapObj.showHybrid) {
			_div2.style.backgroundColor = "lightgreen";	
		} else {
			_div2.style.backgroundColor = "white"; 
		}
		var _div3 = document.getElementById("simpleMap");
		if (mapObj.showHybrid===false && mapObj.showSatellite===false) {
			_div3.style.backgroundColor = "lightgreen";
		} else if (mapObj.showHybrid===true || mapObj.showSatellite===true) {
			_div3.style.backgroundColor = "white";
		}
	}
	
	function satSwitch() {
		mapObj.showHybrid = false;
		mapObj.showSatellite = !mapObj.showSatellite;
		
		loadSatellite();
		buts();
				
		
		/*
		 * Old code 
		 * 
		
		var _lyrs = mapObj.getServerLayers();
		_lyrs.layers[12].layerVisible = !_lyrs.layers[12].layerVisible;
		
		var _div = document.getElementById("sat");
		
		if (_lyrs.layers[12].layerVisible) {
			_div.style.backgroundColor = "lightgreen";	
		} else {
			_div.style.backgroundColor = "white"; 
		}
		mapObj.refresh();
		
		*/
	}
	
	function loadSatellite() {
		var _satLyr = mapObj.getLayer("satellite");
		
		if (mapObj.showSatellite || mapObj.showHybrid) {
			
			if (!_satLyr) {
				_satLyr = mapObj.addLayer("satellite", 0);
			}
			
			var _div = _satLyr.getDiv();
			_div.style.width = mapObj.getSize().width + "px";
			_div.style.height = mapObj.getSize().height + "px";			
			var _url = "url(satellite.ashx?";
			var _state = mapObj.getState();
			
			_url += "z=" + _state.mapZoom;
			_url += "&x=" + _state.mapCenter.x;
			_url += "&y=" + _state.mapCenter.y;
			_url += "&w=" + _state.mapSize.width;			
			_url += "&h=" + _state.mapSize.height;
			
			if (mapObj.showHybrid) {
				_url += "&r=1";
			}	
					
			_url += ")";
			
			_div.style.backgroundImage = _url;
		
			_satLyr.show();
				
		} else {
			
			if (_satLyr) {
				_satLyr.hide();
			}
			
		}
				
	}
	
	function mapLoaded() {
		
		loadSatellite();
		
		
		// Called once to load the extra layers in the select combo
		var _sel =  document.getElementById("selLayer");
		if (!_sel) {
		
			var _lyrs = mapObj.getServerLayers();
			var _html = "<option value=\"-1\"></option>";
			if (_lyrs) {
				for (var _li in _lyrs.layers) {
					var _lyr = _lyrs.layers[_li];
					if (_lyr.layerFriendlyName !== " " && _lyr.layerFriendlyName.substr(0,5) !== "Πράξη") {					
						_html += "<option value=\"" + _li + "\">" + _lyr.layerFriendlyName + "</option>";
					}
				}
			}
			
			_html = "<select id=\"selLayer\" onchange=\"setLayer()\" style=\"width:100%; font-size:11px; font-family: Arial;\">" + _html + "</select>";
			var _div = document.getElementById("layers");
			_div.innerHTML = _html;
			
		}
	}
	
	function setLayer() {
		var _sel =  document.getElementById("selLayer");
		if (_sel) {
			var _id = _sel.value;			    
		    var _lyrs = mapObj.getServerLayers();					
			
		    for (var _li in _lyrs.layers) {
			    var _lyr = _lyrs.layers[_li];
				
			    if (_lyr.layerFriendlyName !== " ") {
					
				    if (_li == _id) {
					    _lyr.layerVisible = true;											
				    } else {
					    _lyr.layerVisible = false;						
				    }
					
					// 28-09-2011 hack for theme labels
					if  (_lyr.layerFriendlyName === "Αντικειμενικές Αξίες")
					{
						// 0 = label layer for antikeimenikes
						_lyrs.layers[0].layerVisible = _lyr.layerVisible;
					}
					
					
			    }
		    }
			
		    mapObj.refresh();
			
		    // Set the legend
		    var _div = document.getElementById("legend");
		    var _w = parseInt(_div.style.width, 0);
		    var _h = parseInt(_div.style.height, 0);			
		    _div.style.backgroundImage = "url(getLegend.ashx?l=" + _id + "&w=" + _w + "&h=" + _h + "&t=" + new Date().getTime() + ")";
		    //_div.style.backgroundRepeat = "none";
		    _div.style.backgroundRepeat = "no-repeat";
		    
									
		}


	}
	
	function showRouteInstructions (pins, route) {
	    
	    if (route.Result.Code === 0) {
	        var rI = document.getElementById("routeSteps");
	        rI.innerHTML= "<div><b>Οδηγίες δρομολογίου</b></div>";
	        for (stepIndex in route.routeSteps) {
	            var instr = route.routeSteps[stepIndex].Direction;
	            if (instr==="") {
	                instr = "ΕΚΚΙΝΗΣΗ.";
	            }
	            var p = pins[stepIndex].worldPos;
	            rI.innerHTML += stepIndex + ". " + instr + "<a href=\"#\" onclick=\"showRouteStep(" + p.x + "," + p.y + ")\"><img src=\"http://karditsa.telenavis.com/jsmap/images/blue/external.png\" border=0/></a><br/>";
	        }
			rI.innerHTML += "<a href=\"#\" onclick=\"clearRoute()\">Διαγραφή</a>";
			
			mapObj.setStatusMessage("Παρακάτω στην σελίδα, θα βρείτε τις οδηγίες δρομολογίου.", "images/down.gif");
			mapObj.showStatus();
			
			setTimeout(mapObj.hideStatus, 5000);
	    }
	}
	
	function showRouteStep (posX, posY) {
	    var pos = new telenavis.Point(posX, posY);
	    mapObj.zoomTo(pos,0.3);
	}
	
	function getPOICategories()
	{
	    var proxy = telenavis.ServerProxy;
	    
	    if (proxy.pendingRequest()===true) 
		{
	        
	        setTimeout( getPOICategories, 1000);                
	        
	    }
		else 
		{
	    
	        var params = [];
							
	        proxy.setCallbackFunction( categoriesResponse );
	        proxy.setTimeoutFunction( poiTimeout );
	        proxy.url = "/poi/getCategories.ashx";
	        
	        proxy.sendRequest( params );
	    }				
		
	}
	
	function categoriesResponse(response)
	{
		var _j;
		
		try
		{
			_j = JSON.parse(response);
			
		} catch(e) {
			
	    	_j = {
	            err : e.message + " at " + e.at + "\n" + e.text
	        };					
		}
		
		var _html="";
		var _poiDiv = document.getElementById("poiDiv");
		if (_j.err) {
			_html = "Σφάλμα:" + _j.err;
		} else {
			var _count = _j.count;
			
			_html = "<table cellpadding=\"0\" cellspacing=\"0\" style=\"margin:0px;\">";
			for (var i=0;i<_count;i++)
			{
				_html += "<tr><td style=\"border:none; padding:0px; \">";
				_html += "<input type=\"checkbox\" id=\"cat" + _j.categories[i].id + "\" value=\"" + _j.categories[i].name + "\" onclick=\"showHideCategory(" + _j.categories[i].id + ");\"/>";
				_html += "</td><td style=\"border:none; font-size:10px; font-family:Arial; padding:0px;\">";
				_html += _j.categories[i].name;
				_html += "</td></tr>";
				
			}
			_html += "</table>";					
		}
	
		_poiDiv.innerHTML = _html;
	}
	
	function poiTimeout()
	{
	    
		var ret = confirm(telenavis.jsmap.Language.msg[1006]);
	    
	    return ret;				
		
	}
	
	function showHideCategory(id)
	{
		var _check = document.getElementById("cat"+ id);
		var lyrName = "catLayer" + id;
		// show category
		var lyr = mapObj.getLayer(lyrName);	
					
		if (_check.checked)	
		{
			if (!lyr) {
				
				lyr = mapObj.addLayer(lyrName,5);
				
				lyr.categoryId = id;
				lyr.getPOIs = function () {
					
		            var proxy = telenavis.ServerProxy;
		            
		            if (proxy.pendingRequest()===true) 
					{
		                
		                setTimeout( lyr.getPOIs, 1000);                
		                
		            }
					else 
					{
	                
		                var params = [];
						params.c = "" + id;
									
		                proxy.setCallbackFunction( telenavis.utils.getHandler(lyr, "addPOIs") );
		                //proxy.setTimeoutFunction( poiTimeout );
		                proxy.url = "/poi/getPOIs.ashx";
		                
		                proxy.sendRequest( params );
		            }								
					
				};
				
				lyr.addPOIs = function (response) {
					if (response) {
						
						response = JSON.parse(response);
						
						if (response.err!=="") {
							alert(response.err);
						} else {
							
	                        var _b = "<table cellpadding=\"0\" cellspacing=\"0\" style=\"margin:0px;background-color:transparent;width:100px;height:100px;\">";
	        			
	                        _b += "<tr><td>Όνομα:</td><td rowspan=4><img src=\"images/please_wait.gif\"/></td></tr>";
	                        _b += "<tr><td>Διεύθυνση:</td></tr>";
	                        _b += "<tr><td>Τηλέφωνο:</td></tr>";
	                        _b += "<tr><td>Τύπος:</td></tr>";
	        				
	                        _b += "</table>";
	        								
							for (var i=0; i<response.count; i++) {
								
								var poi = response.poi[i];
								
				                var pin = new telenavis.jsmap.Pin(poi.id);
				                pin.src = "images/pins/cat" + this.categoryId + ".png";
				                pin.offsetX = -8;
				                pin.offsetY = -16;
				                pin.tip = poi.name;
				                pin.balloonContents = _b;
				                pin.worldPos = new telenavis.Point(poi.x, poi.y);
								//pin.mousedown = showPOIBalloon;
								pin.onclick = function(e) {};
				                pin.onmousedown = showPOIBalloon; 
								pin.setBalloonTimeout(0); // disable auto-popup
				                this.addPin(pin);										
							}
						}
						
						
					}
				};
				
				lyr.getPOIs();
			} else {
				
				lyr.show();
				
			}
	
		} else {
			
			// hide category 
			if (lyr) {
				lyr.hide();
			}
		}
		
	}
	
	var _balLayer = null;
	var _pinId = null;
	
	function showPOIBalloon(e) {
		
		e=e?e:window.event;
	    	
		_balLayer = this.getLayer();
		_pinId = this.getId();
		
		this.showBalloon();
		
		getPOIInfo(this.getId());
		
		//telenavis.utils.stopEventPropagation(e);
		
		return false;
	}
	
	function getPOIInfo(id) {
	    var _proxy = telenavis.ServerProxy;
	    
	    if (_proxy.pendingRequest()===true) 
		{
	        setTimeout( this.getPOIs, 1000);                
	    }
		else 
		{
	    
	        var _params = [];
			_params.id = "" + id;
						
	        _proxy.setCallbackFunction( showPOIInfo );
	        _proxy.url = "/poi/getPOIinfo.ashx";
	        
	        _proxy.sendRequest( _params );
	    }				
		
	}
	
	function showPOIInfo(response) {
		
		var _win = mapObj.balloonWin;
		
		var _j = JSON.parse(response);
		
		if (_win ) {
		
			if (_j.err) {
				
				_win.setContents(_j.err);				
				
			} else {
				var _b = "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" style=\"margin:0px;width:100px;background-color:transparent;\">";
			
				_b += "<tr><td style=\"border:none\">Όνομα:</td><td nowrap style=\"border:none\">" + _j.name + "</td></tr>";
				_b += "<tr><td style=\"border:none\">Διεύθυνση:</td><td nowrap style=\"border:none\">" + _j.address + "</td></tr>";
				_b += "<tr><td style=\"border:none\">Τηλέφωνο:</td><td nowrap style=\"border:none\">" + _j.tel + "</td></tr>";
				_b += "<tr><td style=\"border:none\">Τύπος:</td><td nowrap style=\"border:none\">" + _j.subtype + "</td></tr>";
				_b += "<tr><td style=\"border:none\" nowrap><a href=\"#\" onclick=\"routeFromPin('" + _balLayer.getId() + "','" + _pinId + "')\">Από εδώ</a></td>";
				_b += "<td style=\"border:none\" nowrap></td>";
				_b += "<td style=\"border:none\" nowrap><a href=\"#\" onclick=\"routeToPin('" + _balLayer.getId() + "','" + _pinId + "')\">Πρός εδώ</a></td></tr>";
				
				_b += "</table>";
				_win.setContents(_b);					
	
			}
	
			
		}
		
		_balLayer = null;
		_pinId = null;
		
	}
	
	function addLayerControl() {
		
		var toolbar = mapObj.getToolbar();
		
		var tool = new telenavis.jsmap.toolbar.Tool();
		
		tool.id = "layerControl";
		tool.icon = "images/layercntrl.png";
		tool.iconOver = "images/layercntrl_over.png";
		tool.iconSelected = "images/layercntrl_sel.png";
		tool.tooltip = "Layer Control";
		tool.type = 1;
		tool.onButtonClick = showLayerControlWindow;
		
		toolbar.addTool(tool);
		
	}
	
	function showLayerControlWindow() {
		var layers = mapObj.getServerLayers();
		layers.createControl();
		var toolbar = mapObj.getToolbar();
		var tool = toolbar.getTool("layerControl");
		tool.state = 0;
		toolbar.refresh();
	}
	
	function addReportProblem() {
		
		var toolbar = mapObj.getToolbar();
		
		var tool = new telenavis.jsmap.toolbar.Tool();
		
		tool.id = "problemReport";
		tool.icon = "images/problem_normal.png";
		tool.iconOver = "images/problem_over.png";
		tool.iconSelected = "images/problem_down.png";
		tool.tooltip = "Αναφορά προβλήματος";
		tool.onActivate = showReportProblemHelp;
		tool.onDeactivate = mapObj.hideStatus;
		tool.onclick = reportProblem;
		tool.cursor = "crosshair";
		
		toolbar.addTool(tool);	
		
	}
	
	function showReportProblemHelp() {
		
		mapObj.setStatusMessage("Κάντε κλικ στον χάρτη για καταχώρηση προβλήματος.", "images/on.png");
		mapObj.showStatus();
		
		setTimeout(mapObj.hideStatus, 5000);
	}
	
	function reportProblem(e, pos){
		var win =  window.open("problem_report.aspx?pos=" + pos.x + "," + pos.y,"problemReport",'width=600,height=300,status=1',true);
		mapObj.getToolbar().setCurrentTool("pan");
	}
	
	function geocodeKeyPress(e) {
		e = e?e:window.event;
		
		if (e.keyCode==13) {
			geocode();			
		}
	}
	
	function geocode() {
	    
	    var search = document.getElementById("addressInput").value;
	   
	    if (search === "") {
	        alert(telenavis.geocoder.Language.msg[1011]);
	        return;
	    }
	    
        var _win = window.open("search.aspx?s=" + search,"layerControl",'width=600,height=300,status=0,scrollbars=1,resizable=1',true);
        if (!_win) {
			alert("Failed!");
		}
		/*
	    // Build the address and send to server
	    var address = "";
	    address += road + ",";
	    address += ",";
	    address += ",";
	    address += 4;
	    
	    
	    
	    _geo.callback = showResponse;
	    _geo.geocode(address);
		
		var _div = document.getElementById("searchDiv");
		_div.style.visibility = "hidden";
		*/
	    
	}		
	
	function showAddress(address, pos) {
		pos = new telenavis.Point(pos.x, pos.y);
		var _geocodepinLayer = mapObj.getLayer("geocodeLayer");
		if (!_geocodepinLayer) {
			_geocodepinLayer = mapObj.addLayer("geocodeLayer",6);
		}
		var _geocodePin = new telenavis.jsmap.Pin("geocode");
		_geocodePin.worldPos = pos;
		_geocodePin.src = "images/animatedPin.gif";
		_geocodePin.offsetY = -46;
		_geocodePin.offsetX = -13;
		_geocodePin.tip = address;
		_geocodePin.balloonContents = "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" style=\"margin:0px;width:300px;background-color:transparent;\">" + 
										"<tr><td colspan=\"3\" style=\"border:none\"><b>Διεύθυνση : </b></td></tr>" +
										"<tr><td colspan=\"3\" style=\"border:none\">" + address + "</td></tr><tr>" +
										"<td style=\"border:none\" nowrap><a href=\"#\" onclick=\"routeFromPin('geocodeLayer','geocode')\">Από εδώ</a></td>" +
										"<td style=\"border:none\" nowrap><a href=\"#\" onclick=\"clearAddress()\">Διαγραφή</a></td>" +
										"<td style=\"border:none\" nowrap><a href=\"#\" onclick=\"routeToPin('geocodeLayer','geocode')\">Πρός εδώ</a></td>" + 
										"</tr></table>";
		
		_geocodepinLayer.addPin(_geocodePin);
	    mapObj.zoomTo(pos, 0.3);
		            
	}
	
	function routeFromPin(_layerId, _pinId) {
		var _layer = mapObj.getLayer(_layerId);
		if (_layer) {
			var _pin = _layer.getPin(_pinId);
			if (_pin) {
				var _pos = _pin.worldPos;
				var _menuItem = telenavis.jsmap.contextmenu.RouteStartMenuItem;
				if (_menuItem) {
					_menuItem.onClick(null, _pos, mapObj);
				}
			}
		}
	}

	function routeToPin(_layerId, _pinId) {
		var _layer = mapObj.getLayer(_layerId);
		if (_layer) {
			var _pin = _layer.getPin(_pinId);
			if (_pin) {
				var _pos = _pin.worldPos;
				var _menuItem = telenavis.jsmap.contextmenu.RouteEndMenuItem;
				if (_menuItem) {
					_menuItem.onClick(null, _pos, mapObj);
				}
			}
		}		
	}
	
	function clearAddress() {
		var _geocodepinLayer = mapObj.getLayer("geocodeLayer");
		if (_geocodepinLayer) {
			_geocodepinLayer.removePin("geocode");
		}
	}
	
	function clearRoute() {
		mapObj.removePin("routeStart", "routePins");
		mapObj.removePin("routeEnd", "routePins");
        var _turnsLyr = mapObj.getLayer("routeSteps");
        if (_turnsLyr) {
			_turnsLyr.clear();
		}
		
        var _routeLayer = mapObj.getLayer("routesLayer");
        if (_routeLayer) {
			_routeLayer.clear(); 
		}
		var _rI = document.getElementById("routeSteps");
		if (_rI) {
			_rI.innerHTML = "";
		}
	}
	
	function showResponse(response) {
	                            
	    switch(response.ResponseCode) {
		    case 0:
	            
	            var addressParts = response.Candidates[0].split(",");
	            
	            
	            showAddress({
	                        address: response.Candidates[0],
	                        position: new telenavis.Point(response.LocationX, response.LocationY)
	                        });
	            
	            var _road = document.getElementById("addressInput");
	            _road.value = addressParts[0];
	            
			    break;
	            
	        case 5: 
	            // 5 = server error OR nothing found
	            //     here will be used as nothing found
	            //     which means than no error can be detected
	            var _resDiv = document.getElementById("geocodeResults");
	            _resDiv.innerHTML = response.ResponseDescription;
				alert(response.ResponseDescription);
	        break;
	        
		    default:
	            
	            alert("candidates showing not implemented! (yet)");
	            //prv.showCandidates(response.ResponseCode, response);
	        
			    break;
	    }
		
		var _div = document.getElementById("searchDiv");
		_div.style.visibility = "visible";		
	
	}
	
	function showCandidates(code, response) {
	   
	    var _container = document.getElementById("geocodeResults");
	    var _message = telenavis.geocoder.Language.msg[1020 + code];
	    var _html = "";
	                    
	    if (!_message) { _message = "unknown resp code: " + code; }
	    _html += _message + "<br/>";                        
	    
	    for (cand in response.Candidates) {
	        _html += response.Candidates[cand] + "<br/>";              
	    }
	    
	    _container.innerHTML = _html;
	
	
	}  
	
	
	var screenCoords = null;
	function infoToolClicked(records, coords){	
        var idx = -1;
	    for (counter in records){
	        if (records[counter].layer == "Ot"){
	            idx = counter;
	        }
	    }
	    
	    if (idx == -1) {
	        alert("Δεν βρέθηκαν οικοδομικά τετράγωνα.");
	    }
	    else {
            var proxy = telenavis.ServerProxy;

            if (proxy.pendingRequest()===true)
            {
                //setTimeout( getPOICategories, 1000);
            }
            else
            {
               screenCoords = coords;
                var params = [];
                
                var _record = {id: records[idx].id, layer: records[idx].layer};
                params.requestRecord = JSON.stringify(_record);

                proxy.setCallbackFunction( otDetailsResponse );
                proxy.setTimeoutFunction( otDetailsTimeout );
                 
                proxy.url = "/Poleodomia/getOtDetails.aspx"

                proxy.sendRequest( params );
             }
         }
    }
	
	function otDetailsResponse(response){
	    var _j;
		
		try {
			_j = JSON.parse(response);
			
		} catch(e) {
			
	    	_j = {
	            err : e.message + " at " + e.at + "\n" + e.text
	        };					
		}
		
		var _html="";		
		if (_j.err) {
			_html = "Σφάλμα:" + _j.err;
		} else {	
		
		    _html = "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" style=\"margin:0px;width:300px;background-color:transparent;\">" + 
					    "<tr><td colspan=\"2\" style=\"border:none\; text-align:center\;\"><b>Οικοδομικό Τετράγωνο (" + _j.otPoleodId + ") </b></td></tr>" +					    					    
					    "<tr><td>Αντικειμενική Αξία</td><td>" + (_j.antikeimeniki==-1?"Χωρίς στοιχεία": _j.antikeimeniki.toString()) + "</td></tr>" + 
					    "<tr><td>Συντελεστής Δόμησης</td><td>" + (_j.sd==-1?"Χωρίς στοιχεία": _j.sd.toString()) + "</td></tr>" + 
					    "<tr><td>Χρήση Γης</td><td>" + (_j.xrisi==-1?"Χωρίς στοιχεία":_j.xrisi.toString()) + "</td></tr>" +     
					    "<tr><td colspan=\"2\" style=\"text-align:center\;\"><a href='#' onclick='mapObj.getLayer(\"pinsLayer\").removePin(\"InfoPin\");'>Κλείσιμο παραθύρου</a></td><td></td></tr>" +
					"</table>";
		
		    
		    var pin = new telenavis.jsmap.Pin("InfoPin");
            pin.src = "images/pins/cat41.png";
            pin.offsetX = -8;
            pin.offsetY = -16;
            pin.tip = "info";
            pin.balloonContents = _html;
            pin.worldPos = new telenavis.Point(screenCoords.x, screenCoords.y);
			pin.onclick = function(e) {};
            pin.onmousedown = function (){pin.showBalloon();}
            mapObj.addPin(pin);
            pin.showBalloon();
		
		
		
		    /*
		
		    // The position is given map units
            //var imgPosition = new telenavis.Point(mapObj.getMainDiv().offsetWidth + screenCoords.y, mapObj.getMainDiv().offsetHeight + screenCoords.x); //screenCoords;
            //var imgPosition = new telenavis.Point(mapObj.getMainDiv().offsetHeight, mapObj.getMainDiv().offsetWidth); 
            
            var imgPosition = new telenavis.Point(658 + screenCoords.y,179 + screenCoords.x);
            
            if (mapObj.balloonWin) mapObj.balloonWin.hide();
            
            var mWin = new telenavis.JSWindow("win", null, telenavis.jsmap.Theme);
            
			mWin.setPosition(imgPosition);
            mWin.setSize(new telenavis.Size(100,100));
            mWin.setContents("asdfasdfasdfasdf");
            mWin.nose = true;
            
            var mapDiv = mapObj.getMainDiv();
            if (imgPosition.y < mapDiv.offsetTop + (mapDiv.offsetHeight / 2)){
                
                // top half of the map then nose topRight
                mWin.noseReverse = true;                   
                
            } else {
                // bottom half of the map then nose bottomRight
                mWin.noseReverse = false;                
            }
                        
            mWin.close =true;
            mWin.onclick = mWin.hide;
            mWin.show(); 
            
            mapObj.balloonWin = mWin;	
            */
		    
		    /*
		    var feat = new telenavis.Feature(_j.otId,"Ot");
		    var featCol = new telenavis.FeatureCollection();
		    featCol.features[0] = feat;
		    
		    featCol.onBoundsGot = function(state) {
		        alert("bounds got");
		        
		        // The position is given map units
                var imgPosition = new telenavis.Point(state.mapCenter.x,state.mapCenter.y);
                
                if (mapObj.balloonWin) mapObj.balloonWin.hide();
                
                var mWin = new telenavis.JSWindow("win", null, telenavis.jsmap.Theme);
                
			    mWin.setPosition(imgPosition);
                mWin.setSize(new telenavis.Size(100,100));
                mWin.setContents("asdfasdfasdfasdf");
                mWin.nose = true;
                
                var mapDiv = mapObj.getMainDiv();
                if (imgPosition.y < mapDiv.offsetTop + (mapDiv.offsetHeight / 2)){
                    
                    // top half of the map then nose topRight
                    mWin.noseReverse = true;                   
                    
                } else {
                    // bottom half of the map then nose bottomRight
                    mWin.noseReverse = false;                
                }
                            
                mWin.close =true;
                mWin.onclick = mWin.hide;
                mWin.show(); 
                
                mapObj.balloonWin = mWin;
            
		    }
		    
		    featCol.getBounds();
            */
            
            /*
            // The position is given map units
            var imgPosition = new telenavis.Point(300,300);
            
            if (mapObj.balloonWin) mapObj.balloonWin.hide();
            
            var mWin = new telenavis.JSWindow("win", null, telenavis.jsmap.Theme);
            
			mWin.setPosition(imgPosition);
            mWin.setSize(new telenavis.Size(100,100));
            mWin.setContents("asdfasdfasdfasdf");
            mWin.nose = true;
            
            var mapDiv = mapObj.getMainDiv();
            if (imgPosition.y < mapDiv.offsetTop + (mapDiv.offsetHeight / 2)){
                
                // top half of the map then nose topRight
                mWin.noseReverse = true;                   
                
            } else {
                // bottom half of the map then nose bottomRight
                mWin.noseReverse = false;                
            }
                        
            mWin.close =true;
            mWin.onclick = mWin.hide;
            mWin.show(); 
            
            mapObj.balloonWin = mWin;
		    */
		}	
	}
	
	function otDetailsTimeout()
    {
        var ret = confirm(telenavis.jsmap.Language.msg[1006]);
        return ret;
    }
	
