// ===============================================================
// CBkort version 2.x, copyright Carl Bro GIS&IT, 2006
// ===============================================================
// $Archive: /Products/CBKort2/development/2.6/standard/wwwroot/WEB-INF/config/modules/standard/dk/find-nearest/js/find-nearest.js $ 
// $Date: 25-03-11 18:30 $
// $Revision: 16 $ 
// $Author: Nsm $
// =============================================================== 

    
var fn_searchtarget;

function fn_findNearest(searchtarget)
{
    fn_searchtarget = searchtarget;
    fn_multiselect_find_fromadr();
}
function fn_findNearest_adressFound(wkt)
{
    if(wkt)
    {
        showDivBox(cbInfo.getString('find-nearest.js.find-nearest.showdivbox1'), "about:blank", false, null, null, "300px", "150px");
        //Set up url to find-nearest page
        var fnURL = "/cbkort?page=find.nearest.html";
        fnURL += "&profile="+cbKort.getProfile();
        fnURL += "&nf.startpointtype=POS";
        fnURL += "&nf.startwkt=" + wkt;
        fnURL += "&nf.searchtarget=" + fn_searchtarget;
        fnURL += "&sessionid="+cbKort.getSessionId();
        setTimeout('showDivBox("' + cbInfo.getString('find-nearest.js.find-nearest.showdivbox1') +'", "'+fnURL+'", false, null, null, "300px", "150px");',100);
    }
}

function fn_multiselect_find_fromadr()
{
    multiselect.initDo('adr_kommune_go', cbInfo.getString('find-nearest.js.find-nearest.mdtext1'), '376px', '150px', fn_findNearest_adressFound, null, null, false, false, false);
}

function fn_findNearest_hideFound() {
    if (fn_current_points.length) {
        cbKort.mapObj.deleteFeature (fn_current_points);
        fn_current_points = [];
    }
    if (fn_current_lines.length) {
        cbKort.mapObj.deleteFeature (fn_current_lines);
        fn_current_lines = [];
    }
    var cbHttp  = new CBhttp();
    var url = cbKort.getUrl ({page:'find.nearest.hide.found.xml'});
    cbHttp.executeUrlAsync (url, true);
}

function fn_listTargets()
{
	var returnString = "";
	
	var cbHttp  = new CBhttp();
	var targetsurl = "?page=get.targets.xml";
		 
	var response = cbHttp.executeUrl (targetsurl, true);
	var targetsRowlist = response.get("find-nearest-result").get("nf.searchtargets");
	
	for (i=0;i<targetsRowlist.size();i++){
		var target = "";
		target = targetsRowlist.row(i).column("name").getValue();
		returnString = returnString + "<a class=\"menuItem\" href=\"javascript:hideMenu('findnearestmenu');fn_findNearest('" + target + "');\">" + target + "</a>";
	}
	returnString = returnString + "<a class=\"menuItem\" href=\"javascript:hideMenu('findnearestmenu');fn_findNearest_hideFound();\">" +cbInfo.getString('find-nearest.js.find-nearest.removemark') +"</a>";
	getElement("findnearestmenu").innerHTML=returnString;
}

var fn_current_lines = []; 
function fn_showLines (wktArray) {
    if (fn_current_lines.length) {
        cbKort.mapObj.deleteFeature (fn_current_lines);
        fn_current_lines = [];
    }
    
    if (wktArray && wktArray.length) {
        var style = {
            strokeColor: '#FF0000',
            strokeWidth: 5
        };
        for (var i=0;i<wktArray.length;i++) {
            fn_current_lines.push (cbKort.mapObj.drawWKT (wktArray [i],null,{styles:style}));
        }
    }
}
var fn_current_points = []; 
function fn_showPoints (wktArray) {
    if (fn_current_points.length) {
        cbKort.mapObj.deleteFeature (fn_current_points);
        fn_current_points = [];
    }

    if (wktArray && wktArray.length) {
        var style = {
            strokeColor: '#0000FF',
            fillColor: '#0000FF',
            pointRadius: 6,
            graphicName: 'square',
            label: '',
            //fontColor: "#0000FF",
            labelXOffset: 3,
            labelYOffset: 3,
            fontSize: "14px",
            fontFamily: "Arial",
            fontWeight: "bold",
            labelAlign: "lb" //lt, lm, lb, ct, cm, cb, rt, rm, rb
        };
        for (var i=0;i<wktArray.length;i++) {
            if (i==wktArray.length-1) {
                style.graphicName = 'triangle';
            }
            style.label = wktArray [i].label;
            fn_current_points.push (cbKort.mapObj.drawWKT (wktArray [i].wkt,null,{styles:style}));
        }
    }
}
    
