﻿
var foundAddresses;
function findFreeTextAddress(add) {

    $('#addressFindResults').html("<img alt='Παρακαλώ περιμένετε' title='Παρακαλώ περιμένετε' src='img/ajax-loader.gif' />");

    $.getJSON(serverURL + "getAddress.ashx?lat=0&add=" + escape(add), function(data) {

        foundAddresses = data;

        var html = '';
        var done = false;
        var lastType = 0;
        var lastG = '';

        for (var i = 0; i < data.length; i++) {

            if (data[i].addType != lastType) {

                lastType = data[i].addType;

                switch (lastType) {
                   // case 1: { html += "<br/><br/><b> Οδοί όπου βρέθηκε ο αριθμός </b>"; break; }
                    case 5: { html += "<br/><br/><b> Οδοί όπου δεν βρέθηκε ο αριθμός </b>"; break; }
                    case 3: { html += "<br/><br/><b> Διασταύρωση </b>"; break; }
                    case 4: { html += "<br/><br/><b> Πόλεις – Χωριά </b>"; break; }
                }

            }

            if ((data[i].addNumb == 0) && (done == false)) { html += '<br/><br/> διευθύνσεις που δεν βρέθηκε ο αριθμός:'; done = true; }
            lastG = guid();
            html += "<br/><a href='#' onclick='selectAddress(\"" + lastG + "\"," + i + ");return false;'>" + data[i].addFormated + "</a>";


        }

        if (data.length == 0) { html = 'Η διεύθυνση δεν βρέθηκε !' }
        if (data.length == 1) { selectAddress(lastG, 0); }

        $('#addressFindResults').html(html);

    });

}

function selectAddress(aguid, i) {
    terra.map.graphManager.addNewGr(false, aguid, 1, foundAddresses[i].addFormated, foundAddresses[i].addFormated, new esri.geometry.Point(foundAddresses[i].addPoint.x, foundAddresses[i].addPoint.y, new esri.SpatialReference({ wkid: 2100 })));
}

var foundPois;
function findFreeTextPois(input) {

    $('#poisFreetextFindResults').html("<img alt='Παρακαλώ περιμένετε' title='Παρακαλώ περιμένετε' src='img/ajax-loader.gif' />");

    var centerX = 0;
    var centerY = 0;

    var isOrderByDistance = $('#rdSortDistance').attr('checked')

    if (isOrderByDistance == true) {
        centerX = (map.extent.xmax - map.extent.xmin) / 2 + map.extent.xmin;
        centerY = (map.extent.ymax - map.extent.ymin) / 2 + map.extent.ymin;
    }

    $.ajax({
        type: "POST",
        url: "webservice.asmx/getPoisByFreeText",
        dataType: "xml",
        data:
		    {
		        "input": input,
		        "x": centerX,
		        "y": centerY
		    },
        success: function(xml) {

            var data = $.evalJSON($(xml).find("string").text());

            foundPois = data;

            var html = '';

            var lastTypeCat = '';
            var cat = '';
            var co = 1;

            for (var i = 0; i < data.length; i++) {

                for (var j = 0; j < data[i].subCat.length; j++) {

                    for (var k = 0; k < data[i].subCat[j].poiItems.length; k++) {

                        var poiItem = data[i].subCat[j].poiItems[k];

                        var distHtml = '';

                        if (isOrderByDistance == true) {

                            var dist = poiItem.distance;
                            var unit = 'm';

                            if (dist > 1000) { dist = (dist / 1000); unit = 'km'; }
                            distHtml = '<span style="color:gray">' + dist +" "+unit + " </span>";

                        }
                        else {

                            if (poiItem.catDesc != lastTypeCat) {

                                lastTypeCat = poiItem.catDesc;

                                html += "<br/><div style='color:#1C94C4;font-size:11px;'>";
                                html += poiItem.catDesc;
                                html += "</div>";

                            }
                        }

                        html += " <a href='#' style='margin-top:6px;' onclick='selectPois(\"" + guid() + "\"," + i + "," + j + "," + k + ");return false;'><span  style='color:#1C94C4;font-size:12px;font-weight:bold;'>" + co + "- </span> " + poiItem.poiFormated + " " + distHtml + "</a><br/>";
                        co += 1;
                    }
                }
            }

            if (data.length == 0) { html = 'Δεν βρέθηκε κανένα σημείο ενδιαφέροντος ...' }

            if (co == 51) {
                $('#poi50info').show('fast');
            }
            else {
                $('#poi50info').hide('fast');
            }
            $('#poisFreetextFindResults').html(html);

        }

    });


}

function selectPois(aguid, i, j, k) {

    var poiItem = foundPois[i].subCat[j].poiItems[k];
	var poiItem = foundPois[i].subCat[j].poiItems[k];
	
	var poiHTML = "<div style='color: rgb(28, 148, 196); font-size: 11px;'>"+poiItem.catDesc+"</div>";
	 
		poiHTML +=  poiItem.desc;
		 
		if (poiItem.remarks !=''){
			poiHTML +="<br/>"+  poiItem.remarks;
		}
		if (poiItem.address !=''){
			poiHTML +="<br/><b>Διεύθυνση :</b>"+  poiItem.address;
		}
		if (poiItem.phone !=''){
			poiHTML +="<br/><b>Τηλ :</b>"+  poiItem.phone;
		}
		if (poiItem.fax !=''){
			poiHTML +="<br/><b>Fax :</b>"+  poiItem.fax;
		}
		if (poiItem.email !=''){
			poiHTML +="<br/><b>Email :</b><a href='mailto:"+ poiItem.email+"'>"+  poiItem.email+"</a>";
		}
		if (poiItem.url !=''){
			poiHTML +="<br/><b>Url :</b><a href='http://"+ poiItem.email+"'>"+  poiItem.url+"</a>";
		}
		
    terra.map.graphManager.addNewGr(false, aguid, 1, poiItem.desc, poiHTML, new esri.geometry.Point(poiItem.point.x, poiItem.point.y, new esri.SpatialReference({ wkid: 2100 })));

}
