﻿function ShowHidePodilatodromoi(force) {
    if (force) {
        Show_podilatodromoi = true;
        $('#chkPodilatodromoi').attr('checked', "true");
    }
    else
        Show_podilatodromoi = $('#chkPodilatodromoi').attr('checked');
    if (Show_podilatodromoi)
        $('#inxPodilatodromoi').show();
    else
        $('#inxPodilatodromoi').hide();
    $(".tile_Map").remove();
    myMap.checkTiles();
}

function ShowHideStathmeysi(force)
{
    if (force)
    {
        Show_stathmeysi= true;
        $('#chkStathmeysi').attr('checked',"true");
    }
    else
        Show_stathmeysi=$('#chkStathmeysi').attr('checked');
    if (Show_stathmeysi)
        $('#inxStathmeysi').show();
    else
        $('#inxStathmeysi').hide();
    $(".tile_Map").remove();
    myMap.checkTiles();
}

function ShowHideOasth(force) {
    if (force) {
        Show_oasth = true;
        $('#chkOasth').attr('checked', "true");
    }
    else
        Show_oasth = $('#chkOasth').attr('checked');
    if (Show_oasth)
        $('#inxOasth').show();
    else
        $('#inxOasth').hide();
    $(".tile_Map").remove();
    myMap.checkTiles();
}

function ShowHideArxiki(force)
{
    if (force)
    {
        Show_praxiarxiki= true;
        $('#chkArxiki').attr('checked',"true");
    }
    else
        Show_praxiarxiki=$('#chkArxiki').attr('checked');
        
    $(".tile_Map").remove();
    myMap.checkTiles();
}

function ShowHideNew(force)
{
    if (force)
    {
        Show_praxinew=true;
        $('#chkNew').attr('checked',"true");
    }
    else
        Show_praxinew=$('#chkNew').attr('checked');
        
    $(".tile_Map").remove();
    myMap.checkTiles();
}

function ShowHideRymot(force)
{
    if (force)
    {
        Show_praxirymot=true;
        $('#chkRymot').attr('checked',"true");
    }
    else
        Show_praxirymot=$('#chkRymot').attr('checked');
        
    $(".tile_Map").remove();
    myMap.checkTiles();
}



// JScript File

var next_trans = GetLocalized("epomeni");
var prev_trans = GetLocalized("proigoumeni");
var Image_trans = GetLocalized("image");
var from_trans = GetLocalized("apopz");
var close_trans = GetLocalized("closing");
var orEscKey_trans = GetLocalized("ESC");

function MyInit(cag)
{
    var n;
    
    if (typeof(cag)=="undefined")
        cag = false;
    myMap = new GV_Map('Map',2, 10 , cag, false,n,true, true);
    myOverviewMap = new GV_Map('OverviewMap',0, 0 , true, true, myMap);
    myMap.MyOverview = myOverviewMap;
    myMap.DoResize();
    myMap.ZoomToExtent(92777,4624355,914300,3846678); //that's greece
    
}

function MyInitXYPicker()
{
    var n;
    myMap = new         GV_Map('Map'        ,2, 10  , true, false,n     ,true, true,n,n,n,true);
    myOverviewMap = new GV_Map('OverviewMap',0, 0   , true, true, myMap);
    myMap.MyOverview = myOverviewMap;
    myMap.DoResize();
    myMap.ZoomToExtent(92777,4624355,914300,3846678);
}

function MyInitThes()
{
    var n;
    myMap = new         GV_Map('Map'        ,9, 10  , true, false,n     ,false, true/*,n,n,n,2*/);
    myOverviewMap = new GV_Map('OverviewMap',5, 0   , true, true, myMap);
    myMap.MyOverview = myOverviewMap;
    myMap.DoResize();

//    myMap.Zoom(12);
    myMap.ZoomToExtent(406853, 4501264, 415821, 4492100);
}



function InsertAddressPin(x,y, h,id)
{
    myMap.Zoom(12);
    var header = unescape(h);
    myMap.InsertPin(x,y, header, 0, id, true,false );
}

function InsertDimosPin(x,y, h,id)
{
    myMap.Zoom(9);
    var header = unescape(h);
    myMap.InsertPin(x,y, header, 0, id, true,false );
}

    function ShowTab(tabName)
	{
//		var AddressFrameContainer = document.getElementById('AddressFrame');
//		var NaviFrameContainer = document.getElementById('NaviFrame');
//		var poiContainer = document.getElementById('PoiFrame');
//		var peContainer = document.getElementById('PeFrame');
//		
//		AddressFrameContainer.style.display = 'none';
//		NaviFrameContainer.style.display = 'none';
//		poiContainer.style.display = 'none';
//		if (peContainer)
//		peContainer.style.display = 'none';
		$(".leftTab").hide();
		$("#"+tabName).show();
		switch(tabName)
		{
			case 'AddressFrame':
				//AddressFrameContainer.style.display = 'block';
				myMap.setMapType(1);
				break;
				
			case 'NaviFrame':
				//NaviFrameContainer.style.display = 'block';
				myMap.setMapType(1);
				break;

			case 'PoiFrame':
				//poiContainer.style.display = 'block';
				myMap.setMapType(1);
				break;
				
			case 'PeFrame':
				//peContainer.style.display = 'block';
				myMap.setMapType(2);
				break;
		}
		
		//resultsManager.setHeight(MainContainer.getHeight() - LeftContainer.getHeight() - 55);
	    FixResultAreaHeight();
	};
	
	function MouseOutHeader(tabHeaderName)
	{
	    var tabHeader = document.getElementById(tabHeaderName);
	    tabHeader.style.color = '#005aa9';
	};
	
	function MouseOverHeader(tabHeaderName)
	{
	    var tabHeader = document.getElementById(tabHeaderName);
	    tabHeader.style.color = '#ef0000';
	};
	
    function MouseOutResult(tabHeaderName)
	{
	    var tabHeader = document.getElementById(tabHeaderName);
	    tabHeader.style.color = '#ffffff';
	};
	
	function MouseOverResult(tabHeaderName)
	{
	    var tabHeader = document.getElementById(tabHeaderName);
	    tabHeader.style.color = 'Red';
	};
	
	function ChangedNaviText()
	{
	    var NaviFrom = document.getElementById('navi_from');
	    var NaviTo = document.getElementById('navi_to');
	    var DoNavi = document.getElementById('do_navi');
	
	    if (NaviFrom.value == '' || NaviTo.value=='')
	        DoNavi.disabled = true;
	    else
	        DoNavi.disabled = false;  
	};

var searching=false;

function searchPraxi()
{
    if (searching)
        return;
    searching=true;
    
    var praxi = document.getElementById("txtPraxi");

    var d = '<div id="ResultHeaderTmp" class="result_header">' +
        '<img style="float:left" alt="'+GetLocalized("please_wait")+'" src="resources/images/callbackActivityIndicator.gif" />' +
        '<span id="resheadtxtTmp" class="result_header_text">&nbsp;' +
        praxi.value +'</span></div>';

    $("#Results").prepend(d);
    var sType = "ArxIdioCode";
    if ($("#DropDownList2")[0][1].selected)
    {
        sType = "Onoma";
    }
    else if ($("#DropDownList2")[0][2].selected)
    {
        sType = "OikTet";
    }

    $.get(handlers_url + "GetPraxeis.ashx?PE=" + ($("#DropDownList1").attr("selectedIndex")+1) + "&" + sType + "=" + escape(praxi.value), function(data) {
    $("#ResultHeaderTmp").remove();
    var newPinId = "addrPin"+(addrPinCnt++);
    res = FindPraxi(praxi.value,data,"undefined",newPinId);
    DisplayResult("Πράξεις: "+praxi.value,res,"undefined",0,newPinId);
//    if (res[2]==1)
//        eval(res[3]);
    searching=false;
    });
    setTimeout('FixResultAreaHeight();',100);

}

var addrPinCnt=0;
function searchStreet()
{
    if (searching)
        return;
    searching=true;
    var address = document.getElementById("search_address");

    var d = '<div id="ResultHeaderTmp" class="result_header">' +
        '<img style="float:left" alt="'+GetLocalized("please_wait")+'" src="resources/images/callbackActivityIndicator.gif" />' +
        '<span id="resheadtxtTmp" class="result_header_text">&nbsp;' +
        address.value +'</span></div>';

    $("#Results").prepend(d);

    $.get(handlers_url + "GetAddressThes.ashx?lat=" + Language + "&add=" + escape(address.value), function(data) {
    $("#ResultHeaderTmp").remove();
    var newPinId = "addrPin"+(addrPinCnt++);
    res = FindAddress(address.value,data,false,false,"undefined",newPinId);
    DisplayResult(GetLocalized("add")+res[0],res[1],"undefined",0,newPinId);
    if (res[2]==1)
        eval(res[3]);
    searching=false;
    });
    setTimeout('FixResultAreaHeight();',100);
}

function FindAddress(address,data, IsForNavi, IsStart, rn,newPinId)
{
    // format data and call DisplayResult
    var foundAddr="";
    var formatted = data;
    var calloutExp;
    var command;
    var results_count=0;
    var xy;
    var isDimos = false;
    if (data.indexOf('%%')==0)
    {
    // Found coords!
        var coords = data.split('%');
        xy=[ replaceAll(coords[2],",","."), replaceAll(coords[3],",",".") ];
        results_count=1;
        foundAddr=GetLocalized("synt")+ coords[2] +", "+ coords[3];
        formatted=GetLocalized("synt")+ coords[2] +", "+ coords[3];
        if (IsForNavi)
        {
            if (IsStart)
                command = 'FindProor('+xy[0]+','+xy[1]+',"abba","'+foundAddr+'");';
            else
                command = 'FindRouteWithProor('+xy[0]+','+xy[1]+',"abba","'+foundAddr+'");';
            if (typeof(rn) !="undefined")
                command = replaceAll(command,"abba",rn);
        }
        else
            command = 'InsertAddressPin('+xy[0]+','+xy[1]+',escape("'+foundAddr+'"),"'+newPinId+'");';
    }
    else 
    {
    if (data!="@@")
    {
        if (data.indexOf('$')!=-1)
        {
            formatted ="";
            var categories = data.split('@');
            var oneGood=false;
            for (var j=0; j<categories.length;j++)
            {
                var results = categories[j].split('$');
                var Header;
                if (j==0)
                {
                    if (results[0]=="")
                    {
                        if (categories[2]=='')
                            Header = '<span class="result_desc blueTxt10B">' + GetLocalized("adds_not_found") + ' "' + address + '" ' + GetLocalized("propnum") + '</span><br/>';                  
                        else
                            Header = '';
                    }
                    else
                    {
                        Header = '<span class="result_desc blueTxt10B">' + GetLocalized("addresses") + ' "' + address + '":</span><br/><br/>';                   
                        oneGood=true;
                    }
                    formatted += Header;
                }         
                else if (j==1)
                {
                    if (results[0]!="")
                    {
                        Header = '<br/><span class="result_desc blueTxt10B">' + GetLocalized("addswithno") + '</span><br/><br/>';                    
                        oneGood=true;
                        formatted += Header;
                    }
                }         
//                else if (j==2 && !oneGood)
//                {
//                    Header = '<br/><span class="result_desc">Οδοί που δεν βρέθηκε ο αριθμός:</span><br/><br/>';                    
//                    formatted += Header;
//                }
                else if (j==2)
                {
                    if (results[0]!="")
                    {
                        Header = '<span class="result_desc blueTxt10B">' + GetLocalized("citiesor") + '</span><br/><br/>'; 
                        formatted += Header;     
                        isDimos = true;             
                    }
                }
                if (j!=2)
                {                
                    var onlyAccept100=false;

                    for (var i=0; i<results.length;i++)
                    {
                        var res = results[i].split(';');
                        if (res[0]!="" && (!onlyAccept100 || res[0]==100) )
                        {
                            var score = parseInt(res[0]);
//                            if (score==100)
//                                onlyAccept100=true;
                                
                            var num="";
                            if (j!=1)
                                num = ' ' + res[3];
                            results_count++;
                            xy = res[5].split('-');
                            calloutExp = escape( res[2]+ num/* + ', ' + res[4]*/);
                            foundAddr = res[2]+ num/* + ', ' + res[4]*/;
                            if (IsForNavi)
                            {
                                if (IsStart)
                                    command = 'FindProor('+xy[0]+','+xy[1]+',"abba","'+foundAddr+'");';
                                else
                                    command = 'FindRouteWithProor('+xy[0]+','+xy[1]+',"abba","'+foundAddr+'");';
                                if (typeof(rn) !="undefined")
                                    command = replaceAll(command,"abba",rn);

                            }
                            else
                                command = 'InsertAddressPin('+xy[0]+','+xy[1]+',"'+escape(calloutExp)+'","'+newPinId+'");';
                            var f = '<span class="result lnkBlue10" onclick=\''+command+'\'>' + foundAddr + '</span><br/>';
                            
                            formatted += f;
                        }   
                    }
                }
                else
                {
                    for (var i=0; i<results.length;i++)
                    {
                        var res = results[i].split(';');
                        if (res[0]!="")
                        {
                            results_count++;

                            xy = res[3].split('-');
                            calloutExp = escape( res[2]);
                            foundAddr = res[2];
                            if (IsForNavi)
                            {
                                if (IsStart)
                                    command = 'FindProor('+xy[0]+','+xy[1]+',"abba","'+foundAddr+'");';
                                else
                                    command = 'FindRouteWithProor('+xy[0]+','+xy[1]+',"abba","'+foundAddr+'");';
                                if (typeof(rn) !="undefined")
                                    command = replaceAll(command,"abba",rn);

                            }
                            else
                                command = 'InsertDimosPin('+xy[0]+','+xy[1]+',"'+escape(calloutExp)+'","'+newPinId+'");';
                            var f = '<span class="result" onmouseout="this.style.color = \'#99CCFF\'" onmouseover="this.style.color = \'Red\'" onclick=\''+command+'\'>' + foundAddr + '</span><br/>';
                            
                            formatted += f;
                        }
                    }
                }
            }
        }
        
    }

    if (formatted == '@@') {
        if (IsForNavi) {
            if (IsStart) {
                formatted = GetLocalized("startnf");
            }
            else {
                formatted = GetLocalized("destnf");
            }
        }
        else
            formatted = GetLocalized("singleaddnf");
    }
    if (typeof(rn)!="undefined" && rn != "undefined" && rn!="abba")
        formatted = replaceAll(formatted,"abba",rn);
        
    }    
    return [address,formatted, results_count,command,xy,foundAddr,isDimos];
}


function FindPraxi(praxi,data, rn,newPinId)
{
    var formatted = "";
    var minX = 10000000;
    var minY = 10000000;
    var maxX = 0;
    var maxY = 0;

    if (data.length != 0)
    {
    // Found Praxi!
        var praxeis = data.split('$');
        
        for (var i=0; i<praxeis.length-1;i++)
        {
            var praxi = praxeis[i].split('#');

            if (praxi[5] > 0)
            {
                if (praxi[5] > maxX)
                    maxX = praxi[5];
                if (praxi[5] < minX)
                    minX = praxi[5];
            }
            if (praxi[7] > 0) {
                if (praxi[7] > maxX)
                    maxX = praxi[7];
                if (praxi[7] < minX)
                    minX = praxi[7];
            }
            if (praxi[9] > 0) {
                if (praxi[9] > maxX)
                    maxX = praxi[9];
                if (praxi[9] < minX)
                    minX = praxi[9];
            }

            if (praxi[6] > 0) {
                if (praxi[6] > maxY)
                    maxY = praxi[6];
                if (praxi[6] < minY)
                    minY = praxi[6];
            }
            if (praxi[8] > 0) {
                if (praxi[8] > maxY)
                    maxY = praxi[8];
                if (praxi[8] < minY)
                    minY = praxi[8];
            }
            if (praxi[10] > 0) {
                if (praxi[10] > maxY)
                    maxY = praxi[10];
                if (praxi[10] < minY)
                    minY = praxi[10];
            }
            
            var command1 = "CenterAtPraxiPiece(1," + praxi[5] + "," + praxi[6] + ")";
            if (praxi[5] == 0)
                command1 = "alert(\"" + GetLocalized("nocoords") + "\")";
            var command2 ="CenterAtPraxiPiece(2,"+praxi[7]+","+praxi[8]+")";
            var command3 ="CenterAtPraxiPiece(3,"+praxi[9]+","+praxi[10]+")";
            
            if (praxi[0]!='')
            {
                formatted += '<span class="result_text">' + GetLocalized("idiokt") + '</span><span class="result" onmouseout="this.style.color = \'#5a74a0\'" onmouseover="this.style.color = \'Red\'" onclick=\'' + command1 + '\'>' + praxi[0] + '</span><br/>';
            }

            if (praxi[1]!='')
            {
                formatted += '<span class="result_text">' + praxi[1] + '</span><br/>';
            }
            
            if (praxi[2]!='')
                formatted += '<span class="result_text">' + GetLocalized("block") + '</span><span class="result" onmouseout="this.style.color = \'#5a74a0\'" onmouseover="this.style.color = \'Red\'" onclick=\'' + command2 + '\'>' + praxi[2] + '</span>';

            formatted +="-";

                
            if (praxi[3]!='')
                formatted += '<span class="result" onmouseout="this.style.color = \'#5a74a0\'" onmouseover="this.style.color = \'Red\'" onclick=\''+command3+'\'>' + praxi[3] + '</span>';

            if (praxi[2]!='')
                formatted += '<br/><span class="result" onmouseout="this.style.color = \'#5a74a0\'" onmouseover="this.style.color = \'Red\'" onclick=\'window.open("GetPdf.ashx?lat=' + Language + '&f=Docs/OikTetXLS/' + praxi[2].replace('Γ', 'G').replace('Α', 'A').replace('Β', 'B') + '.xls")\'>' + GetLocalized("XLS") + '</span>';

            formatted +="<br/>";
            var pdfs = praxi[4].split(" ");
            
            if (pdfs.length>0)
            {
            
                for (var j=0; j<pdfs.length;j++)
                {
                    
                    
                    if (pdfs[j].length>2)
                    {
                        if (j==0)
                            formatted += '<span class="result_text">' + GetLocalized("related_docs") + '</span>';

                        formatted += '<span class="result" onmouseout="this.style.color = \'#5a74a0\'" onmouseover="this.style.color = \'Red\'" onclick="window.open(\'GetPdf.ashx?lat=' + Language + '&f=Docs/Diorthotikes-PE/DEC/DEC' + pdfs[j] + '.pdf\');">' + pdfs[j] + '</span> ';
                    }
                    if (j!=pdfs.length-1)
                        formatted +="-";
                    else
                        formatted += '<br/>';
                }
            }
            
            formatted += '<br/>';

        }
        
        
    }
    else
        formatted = '<span class="result_desc blueTxt10B">' + GetLocalized("no_acts") + '"' + praxi + '"</span>';    
    
    if (typeof(rn)!="undefined" && rn != "undefined" && rn!="abba")
        formatted = replaceAll(formatted,"abba",rn);

    myMap.ZoomToExtent(minX, minY, maxX, maxY);         
    
    return formatted;
}

function CenterAtPraxiPiece(type,x,y)
{
    myMap.Zoom(15);
    myMap.CenterAtCoords(x,y);
    if (type==1)
        ShowHideArxiki(true);
    else if (type==3)
        ShowHideNew(true);
    else if (type==2)
        ShowHideRymot(true);
        
    $('#pinPraxi').remove();
    myMap.InsertPin(x,y, '', 3, "pinPraxi", false, true);
    setTimeout("$('#pinPraxi').hide();",500);
    setTimeout("$('#pinPraxi').show();",1000);
    setTimeout("$('#pinPraxi').hide();",1500);
    setTimeout("$('#pinPraxi').show();",2000);
    setTimeout("$('#pinPraxi').hide();",2500);
    setTimeout("$('#pinPraxi').show();",3000);
    setTimeout("$('#pinPraxi').remove();",7000);
}


ResCounter=0;
var VisibleRes = new Array;
function DisplayResult(header,data, rn, resType,idOrClass)
{
    var Resnum=ResCounter++;
    if (typeof(rn) !="undefined" && rn !="undefined" & rn !="abba")
    {
        Resnum=rn;
        document.getElementById('ResultArea'+Resnum).innerHTML=data;
        $('#resheadtxt'+Resnum).html(header);
    }
    else
    {
        var ndata = data;
        if (typeof(rn) !="undefined")
            ndata = replaceAll(data,"abba",rn);
            
            
        var d = '<div id="ResultHeader'+Resnum+'" class="result_header">' +
            '<img id="ResultPW'+Resnum+'" style="float:left;display:none;" alt="'+GetLocalized("please_wait")+'" src="resources/images/callbackActivityIndicator.gif" />' +
            '<img class="result_close" alt="' + GetLocalized("hide") + '" src="resources/images/close_gray.png" onclick="CloseResult(' + Resnum + ',true);" />' +
            '<span id="resheadtxt'+Resnum+'" class="result_header_text" onmouseout="MouseOutResult(\'resheadtxt'+Resnum+'\');" onmouseover="MouseOverResult(\'resheadtxt'+Resnum+'\')" onclick="ToggleVisibleResultArea(\'ResultArea'+Resnum+'\');">' +
            header +'</span></div>'+
            '<div id="ResultArea'+Resnum+'" class="result_area">'+ndata+'</div>';

        if (typeof(VisibleRes[2])!="undefined")
        {
            CloseResult(VisibleRes[2][0],true);
        }
        VisibleRes[2] = VisibleRes[1];
        VisibleRes[1] = VisibleRes[0];
        VisibleRes[0] = [Resnum,resType,idOrClass];

        if (typeof(VisibleRes[1])!="undefined")
            $("#ResultArea"+VisibleRes[1][0]).hide();

        if (typeof(VisibleRes[2])!="undefined")
            $("#ResultArea"+VisibleRes[2][0]).hide();
        d = replaceAll(d,"abba",Resnum);
        $("#Results").prepend(d);
    }
    setTimeout('FixResultAreaHeight();',100);
    return Resnum;
}

function CloseNavResults()
{
    for (var i=0;i<3;i++)
    {
        if (typeof(VisibleRes[i])!="undefined")
        {
            if (VisibleRes[i][1]==1)
                CloseResult(VisibleRes[i][0],false);
        }
    }
}

function ToggleVisibleResultArea(elemid)
{
    $(".result_area").hide();
    $("#"+elemid).toggle();
    $(".result_area").css("height",myMap.viewportHeight-200);
    FixResultAreaHeight();
}

function CloseResult(res,fromUser)
{
    myMap.HideCallouts();
    $("#ResultHeader"+res).remove();
    $("#ResultArea"+res).remove();
    if (VisibleRes[0][0]==res)
    {
        RemoveMapItems(VisibleRes[0][1],VisibleRes[0][2],fromUser);
        VisibleRes.splice(0,1);
    }
    else if (VisibleRes[1][0]==res)
    {
        RemoveMapItems(VisibleRes[1][1],VisibleRes[1][2],fromUser);
        VisibleRes.splice(1,1);
    }
    else if (VisibleRes[2][0]==res)
    {
        RemoveMapItems(VisibleRes[2][1],VisibleRes[2][2],fromUser);
        VisibleRes.splice(2,1);
    }
    FixResultAreaHeight();    
}


function RemoveMapItems(type,idOrClass,fromUser)
{
    if (type==0)
    {
        $("#"+idOrClass).remove();
        myMap.ClearFromAllPinsCoordsById(idOrClass);
    }
    else if (type==1)
    {
        myMap.ClearRoute(true,fromUser);        
    }
    else if (type==2)
    {
        $("."+idOrClass).remove();
        myMap.ClearFromAllPinsCoordsByClass(idOrClass);
    }
}

function onEnterAddress( evt, frm ) {
    var keyCode = null;

    if( evt.which ) {
    keyCode = evt.which;
    } else if( evt.keyCode ) {
    keyCode = evt.keyCode;
    }
    if( 13 == keyCode ) {
    searchStreet();
    return false;
    }
    return true;
}

function onEnterAddress1( evt, frm ) {
    var keyCode = null;

    if( evt.which ) {
    keyCode = evt.which;
    } else if( evt.keyCode ) {
    keyCode = evt.keyCode;
    }
    if( 13 == keyCode ) {
    $('#navi_to').focus(); 
    return false;
    }
    return true;
}


function onEnterAddress2( evt, frm ) {
    var keyCode = null;

    if( evt.which ) {
    keyCode = evt.which;
    } else if( evt.keyCode ) {
    keyCode = evt.keyCode;
    }
    if( 13 == keyCode ) {
    searchRoute();
    return false;
    }
    return true;
}


function searchRoute()
{
    if (searching)
        return;
    searching=true;
    var address1 = document.getElementById("navi_from");
    var address2 = document.getElementById("navi_to");

    var d = '<div id="ResultHeaderTmp" class="result_header">' +
        '<img style="float:left" alt="'+GetLocalized("please_wait")+'" src="resources/images/callbackActivityIndicator.gif" />' +
        '<span id="resheadtxtTmp" class="result_header_text">&nbsp;' + GetLocalized("apo") + ' ' +
        address1.value +GetLocalized("pros")+address2.value+'</span></div>';

    $("#Results").prepend(d);

    $.get(handlers_url + "GetAddressThes.ashx?lat=" + Language + "&add=" + escape(address1.value), function(data) {
    $("#ResultHeaderTmp").remove();
    res = FindAddress(address1.value,data, true, true);
    if (res[2]==1)
    {
        address1.value = res[5];
        myMap.xyStart = [res[4][0],res[4][1]];
        ///////////////////////////////
        $.get(handlers_url + "GetAddressThes.ashx?lat=" + Language + "&add=" + escape(address2.value), function(data) {
        $("#ResultHeaderTmp").remove();
        res = FindAddress(address2.value,data, true, false);
        if (res[2]==1)
        {        
            address2.value = res[5];
            var ud;
            FindRouteWithProor(res[4][0],res[4][1],ud,res[5]);
        }
        else
            rn = DisplayResult(GetLocalized("navfrom") + address1.value + GetLocalized("pros") + address2.value, res[1], "undefined", 1);
            
        searching=false;
        });
        
        ///////////////////////////////
    }
    else
        rn = DisplayResult(GetLocalized("navfrom") + address1.value + GetLocalized("pros") + address2.value, res[1], "undefined", 1);
        
    searching=false;
    });
    setTimeout('FixResultAreaHeight();',100);
}

function FindProor(x,y,rn,addrStart)
{
    var address1 = document.getElementById("navi_from");
    
    myMap.xyStart = [x,y];
    address1.value = addrStart;
    var address2 = document.getElementById("navi_to");
    
    ///////////////////////////////
    $("#ResultPW"+rn).toggle();
    $.get(handlers_url + "GetAddressThes.ashx?lat=" + Language + "&add=" + escape(address2.value), function(data) {
    $("#ResultHeaderTmp").remove();
    res = FindAddress(address2.value,data, true, false, rn);
    if (res[2]==1)
    {
        address2.value = res[5];
        FindRouteWithProor(res[4][0],res[4][1],rn,res[5]);
    }
    else
        DisplayResult(GetLocalized("navfrom") + address1.value + GetLocalized("pros") + address2.value, res[1], rn, 1);
        
    searching=false;
    $("#ResultPW"+rn).toggle();

    });
    
    ///////////////////////////////
}

function FindRouteWithProor(x,y,rn,addrEnd)
{
    var address1 = document.getElementById("navi_from");
    var address2 = document.getElementById("navi_to");
    $("#addrDep").remove();
    $("#addrDest").remove();
    myMap.xyEnd = [x,y];
    address2.value = addrEnd;
//myMap.xyStart = [412234,4491792];kalamaria
    myMap.InsertPin(myMap.xyStart[0],myMap.xyStart[1],address1.value, 1, 'startPin', false,true );
    myMap.InsertPin(myMap.xyEnd[0],myMap.xyEnd[1], address2.value, 2, 'endPin', false,true );
    myMap.CalculateRoute(rn);
}

function FormatDirections(directions,points, lengths, times)
{
    var address1 = document.getElementById("navi_from");
    var address2 = document.getElementById("navi_to");
    var formatted = "";
    var command;
    var results_count=0;
    if (directions.length>0)
    {
        formatted ="";
        var xy;
        var xy_prev;
        var totaltime=0;
        var totalLen =0 ;
        myMap.ClearNaviPoints();
        myMap.DirIds = new Array();
        
        for (var i=0; i<directions.length;i++)
        {
            var res = directions[i];
            totaltime += parseFloat(times[i]);
            totalLen += parseFloat(lengths[i]);
            results_count++;
            if (typeof(xy)!="undefined")
                xy_prev = xy;
            else
                xy_prev = [0,0];
            xy = points[i].split('-');
            myMap.PutNaviPoint(xy[0],xy[1],i);
            command = 'ShowRouteMap('+xy[0]+','+xy[1]+','+i+', "route_abba_ResN'+i+'");';
            var HoverCommand = '';//HoverNaviPoint('+i+');';
            var mouseoutCommand = '';//'UnHoverNaviPoint('+i+');';
            var len = "";
            var j=i+'. ';
            if (i!=0 && i!=directions.length-1)
            {
                if (res.indexOf(GetLocalized("continue")) == 0)
                    len = GetLocalized("for_m") + FormatLen(lengths[i]) + 'm';
                else
                    len = GetLocalized("cont_for") + FormatLen(lengths[i]) + 'm';
            }
            else
            {
                res = res.replace("Location 1",address1.value );
                res = res.replace("Location 2",address2.value );
                j="";
            }
            
            var f = '<div id="route_abba_ResN'+i+'" class="result naviresult" onclick=\''+command+'\'>'+j+  res + len +'</div>';
            
            myMap.DirIds[myMap.DirIds.length] = j+  res + len;
            
            formatted += f;
        }
        formatted = GetLocalized("est_time") + FormatTime(totaltime) + "<br/><br/>" + formatted;
        formatted = GetLocalized("est_dist") + FormatLen(totalLen) + 'm<br/>' + formatted;
        
    }  
    return formatted;
}

function FormatLen(l)
{
    l = parseFloat(l)*1000;
    l = Math.round(l);
    if (l>1000)
    {
        l = l/100;
        l = Math.round(l);
        l = l/10;
        l = l + " K";
    }
    else
    {
        l = Math.round(l);
        l = l+" ";
    }
    return l;
}
function FormatTime(t) {
    t = Math.round(t);
    if (t > 60) {
        var w = GetLocalized("hours");
        if (Math.round(t / 60) == 1)
            w = GetLocalized("hour");

        if (t % 60 == 0)
            return Math.round(t / 60) + " " + w;
        else if (t % 60 == 1)
            return Math.round(t / 60) + " " + w + GetLocalized("sto_lepto");
        else
            return Math.round(t / 60) + " " + w + GetLocalized("plus") + t % 60 + GetLocalized("minutes");
    }
    else {
        if (t == 1)
            return GetLocalized("lepto");
        else
            return t + GetLocalized("minutes");
    }
}


function ShowRouteMap(x1,y1,num, where)
{
    myMap.DisplayCalloutWithMap(x1,y1,num);
}
function HoverNaviPoint(num)
{
    myMap.ShowNaviPoint(num);
}

function UnHoverNaviPoint(num)
{
    myMap.HideNaviPoint(num);
}

function FixResultAreaHeight()
{
    var HeadH = 0;
    var u = $(".result_header");
    for (var i=0; i<u.length; i++)
    {
        HeadH+= $("#"+u[i].id).height()+12;
    }
//    HeadH+= $("#addressFinder").height();
//    HeadH+= $("#naviFinder").height();
    
    $(".result_area").css("height",$("#Map").height()+8-$("#lefttable1").height()-HeadH-12);
}


function MainCatSelected()
{
    var categ = document.getElementById("poiCatSel");
    $.get("GetSubcat.ashx?lat=" + Language + "&cat=" + escape(categ.value), function(data) {

    DisplaySubcats(data);
    });
    setTimeout('FixResultAreaHeight();',100);   
}

function DisplaySubcats(data)
{
    var categ = document.getElementById("poiCatSel");
    //data = replaceAll(data,"^^^",categ.value+' - ');

    var formatted="";
    var categories = data.split('@');
    for (var i=0; i<categories.length-1;i++)
    {
        var subcat = categories[i].split('$');
        formatted+="<span id=\"subcat"+i+"\" style=\"padding-top:5px; line-height:18px; padding-left:5px;\" class=\"lnkBlue11\" onclick=\"displayCat("+categ.value+","+subcat[0]+",1,'"+escape(subcat[1])+"');\" >"+subcat[1]+"</span><br/>"
    }
    $("#PoiSubcats").html(formatted);
}

function displayCat(cat,sub,page,cat_name,c,rn)
{
    if (typeof(c)=="undefined")
        c= myMap.GetCenterCoords();
    $.get("GetPois.ashx?lat=" + Language + "&cat=" + escape(cat + "_" + sub) + "&coo=" + escape(c[0] + "_" + c[1]) + "&row=" + page + "_10", function(data) {
        DisplayPoi(data,cat,sub,page,cat_name,c,rn);
    });
}
var poiClsCnt=0;
function DisplayPoi(data,cat,sub,page,cat_name,center,rn)
{
    var lala=rn;
    if (typeof(rn)=="undefined")
        lala=ResCounter;
    var data2 = data.split("|$|");
    var Total = data2[1];
    var pois = data2[0].split("~@~");
    //$(".poi").remove();

    var formatted="";
    var title = "<span class='blueTxt10B'>" + GetLocalized("found") + " " + Total + GetLocalized("pts_pts");
    if (Total==0)
        title = "<span class='blueTxt10B'>" + GetLocalized("no_pt") + "</span>";
    var footer=page;
    if (Total<11)
        footer="";
    var hasNext=false;
    var hasPrev=false;
    for (var i=page+1;i<page+4;i++)
    {
        if ( (i-1)*10+1<=Total)
        {
            footer = footer + " <span class=\"lnkBlue10\" onclick=\"$('.poiCls"+lala+"').remove();displayCat("+cat+","+sub+","+i+",'"+cat_name+"',["+center[0]+","+center[1]+"],"+lala+");\">" + i + "</span>";
            hasNext=true;
        }
        if (Total<i*10)
            break;
    }
    if (hasNext)
        footer = footer + " <span class=\"lnkBlue10\"  onclick=\"$('.poiCls" + lala + "').remove();displayCat(" + cat + "," + sub + "," + (page + 1) + ",'" + cat_name + "',[" + center[0] + "," + center[1] + "]," + lala + ");\">" + GetLocalized("nexxt") + "</span>";

    for (var i=page-1;i>page-4;i--)
    {
        if (i>0)
        {
            footer = "<span class=\"lnkBlue10\"  onclick=\"$('.poiCls"+lala+"').remove();displayCat("+cat+","+sub+","+i+",'"+cat_name+"',["+center[0]+","+center[1]+"],"+lala+");\">" + i + "</span> "+footer;
            hasPrev=true;
        }
        else
            break;
    }
    if (hasPrev)
        footer = "<span class=\"lnkBlue10\" onclick=\"$('.poiCls" + lala + "').remove();displayCat(" + cat + "," + sub + "," + (page - 1) + ",'" + cat_name + "',[" + center[0] + "," + center[1] + "]," + lala + ");\">" + GetLocalized("prevv") + "</span> " + footer;


    
    var t=((page-1)*10+10);
    if (Total<t)
        t = Total;
    if (Total!=0)
        title += ((page-1)*10+1) + "-" +  t+":</span><br/><br/>";
    
    var xMin,yMin,xMax,yMax;
    var l = Math.min(pois.length-1,10);
    var cls = "poiCls"+lala;
    for (var i=1; i<l+1;i++)
    {
        var j=l-i;
        var attr = pois[j].split('$%$');

        if (i==1)
        {
            xMin=attr[11];
            yMin=attr[12];
            xMax=attr[11];
            yMax=attr[12];
        }
        else
        {
            if (attr[11]<xMin)
                xMin = attr[11];
            if (attr[11]>xMax)
                xMax = attr[11];
                
            if (attr[12]<yMin)
                yMin = attr[12];
            if (attr[12]>yMax)
                yMax = attr[12];
        }
        var icon=attr[14];
        var BigCallout=false;
        if (attr[35].length>2 && attr[35]!='<br />'&& attr[35]!='<br/>')
            BigCallout=true;
        
        myMap.InsertPoiPin(attr[11],attr[12],attr[9],attr[0],icon,cat,sub,cls,BigCallout);
        myMap.poiArray[attr[0]+"_"+cat+"_"+sub] = attr;
        
        var command = 'if (myMap.GetZoomLevel()<12)myMap.Zoom(12);lala=myMap.CenterAtCoords('+attr[11]+','+attr[12]+',0,0,true,true);lala=replaceAll(lala[1],"$$SPEED$$","400");lala=replaceAll(lala,"$$ANDTHEN$$","if ('+attr[35].length+'>2 && \\"'+attr[35]+'\\"!=\\"<br />\\" && \\"'+attr[35]+'\\"!=\\"<br/>\\") myMap.DisplayBigCallout('+attr[0]+','+cat+','+sub+',\\"'+icon+'\\"); else myMap.DisplayPoiCallout('+attr[0]+','+cat+','+sub+',\\"'+icon+'\\");myMap.AdjustOverview();myMap.clearUnwantedFromView();myMap.checkTiles();");eval(lala);';
        var HoverCommand = 'HoverPoiPoint('+j+');';
        var mouseoutCommand = 'UnHoverPoiPoint('+j+');';

        var address="";
        if (trim(attr[1])!="")
            address=attr[1]+" "+ attr[2]+",";
        formatted = '<div id="poi_abba_ResN'+j+'" class="result poiresult" onclick=\''+command+'\'><b>'+GetLetter(attr[0])+". "+  attr[9] +'</b><br/>'+ address + ' ' + attr[3] +'</div>'+ formatted;
    }
    DisplayResult(GetLocalized("pois") + '<strong>' + unescape(cat_name) + '</strong>', title + formatted + footer, rn, 2, cls);  
    myMap.ZoomToExtent(xMin,yMin,xMax,yMax);      
}

function ShowPoi(zl,mt)
{
    var attr = PoiInfo.split('$%$');
    var icon=attr[14];
    var BigCallout=false;
    if (attr[17]!='')
        BigCallout=true;
    
    myMap.setMapType(mt);
    myMap.InsertPoiPin(attr[11],attr[12],attr[9],attr[0],icon,-1,-1,"SingelPoi",BigCallout);
    myMap.Zoom(zl);
    myMap.CenterAtCoords(attr[11],attr[12],0,0,false);
    myMap.DisplayBigCallout(attr[0],-1,-1,icon);
}

function GetLetter(num)
{
    var ToRet="";
    if (num!=0)
    {
        switch (parseInt(num)%10)
        {
            case 1:ToRet="A";break;
            case 2:ToRet="B";break;
            case 3:ToRet="C";break;
            case 4:ToRet="D";break;
            case 5:ToRet="E";break;
            case 6:ToRet="F";break;
            case 7:ToRet="G";break;
            case 8:ToRet="H";break;
            case 9:ToRet="I";break;
            case 0:ToRet="J";break;
        }
    }
    return ToRet;
}
function HoverPoiPoint()
{
}

function UnHoverPoiPoint()
{
}

function trim(str, chars) {
    return ltrim(rtrim(str, chars), chars);
}

function ltrim(str, chars) {
    chars = chars || "\\s";
    return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}

function rtrim(str, chars) {
    chars = chars || "\\s";
    return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}


function ShowVlaves()
{
    $.get("VlaviGet.ashx", function(data){
    var vlaves = data.split('$#@!');
    var formatted ="";
    
    if (data!="")
    {
        for (var i=0; i<vlaves.length;i++)
        {
            var command="";
            var vlavi = vlaves[i].split('#@!');
            myMap.InsertProbPin(vlavi[3],vlavi[4],vlavi[1], vlavi[2], 'probPin'+(probCounter++), false,true );
            command = 'if (myMap.GetZoomLevel()<12)myMap.Zoom(12);lala=myMap.CenterAtCoords('+vlavi[3]+','+vlavi[4]+',0,0,true,true);lala=replaceAll(lala[1],"$$SPEED$$","400");lala=replaceAll(lala,"$$ANDTHEN$$","myMap.AdjustOverview();myMap.clearUnwantedFromView();myMap.checkTiles();");eval(lala);';
            var HoverCommand = 'HoverPoiPoint('+i+');';
            var mouseoutCommand = 'UnHoverPoiPoint('+i+');';
            formatted = '<div id="poi_abba_ResN'+i+'" class="result poiresult" onmouseout="'+mouseoutCommand+'this.style.color = \'#99CCFF\'" onmouseover="'+HoverCommand+';this.style.color = \'Red\'" onclick=\''+command+'\'><b>'+vlavi[1] +'</b><br/></div>'+ formatted;
            
        }
        var rn;
        DisplayResult(GetLocalized("probs"), formatted, rn, 2, "cls");  
    }
    });
}

function getAithsh()
{
    window.open("docs/aithseis/"+$("#selAithsh").attr('value'));
}

function searchGeod() 
{
    $.get("GetGeod.ashx?geod=" + $("#txtGeod").attr('value'), function(data) {
        var geod = data.split(';');
        var xy = geod[2].split("-");
        var height = "";
        var remark = "";
        if (geod[1] != 0)
            height = "<br/>"+GetLocalized("height2") + geod[1] + "m";
        if (geod[3] != "")
            remark = "<br/>(" + geod[3] + ")";

        myMap.InsertPin(xy[0], xy[1], "<b>" + geod[0] + height + remark + "</b>", 0, "geodID", true, false, true);

    });
}