var geoSearchRadius   =  25;
var geoSearchRows     = 100;
var geoSearchLanguage = "de";
var geoSearchCountry  = "de";

var geoPanoramioSize  = "medium";
var geoPanoramioCount = 20;

var geoNameSearchService  = "searchJSON";//"wikipediaSearchJSON"; //"searchJSON"
var geoPointSearchService = "Panoramio";//"Wikipedia"; //"Panoramio", "Flickr"

var searchOnResult = 0;

function getSearchOptions()
{
    if(document.getElementById("My2Control") == null)
        return;

}
//####################################################################################
//####################################################################################
//####################################################################################
function Wikipedia(Service)
{
    geoSearchService = "NearByWikipedia";
    getSearchOptions();

    if(searchOnResult==true)
    {   var tmp = document.getElementById("selGEONAMES").value.split(",");
        var lon = tmp[1];
        var lat = tmp[2];
        var point = new OpenLayers.LonLat(lon, lat);
    }
    else
    {
        var lon = map.getCenter().lon;
        var lat = map.getCenter().lat;
        var point = OpenLayers.Layer.SphericalMercator.inverseMercator(lon, lat);
    }

    if(document.implementation && document.implementation.createDocument)
    {
        var theUrl = aspProxy;
        var theParams  = QuestionMark + "url=http://ws.geonames.org/findNearbyWikipediaJSON";
            theParams  += "&lng=" + point.lon;
    }
    else
    {
        var theUrl = "http://ws.geonames.org/findNearbyWikipediaJSON";
        var theParams  = QuestionMark + "lng=" + point.lon;
    }
    theParams  += "&lat=" + point.lat;
    theParams  += "&radius="     + geoSearchRadius;
    theParams  += "&country="    + geoSearchCountry;
    theParams  += "&maxRows="    + geoSearchRows;
    theParams  += "&lang="       + geoSearchLanguage;
    //if(document.getElementById("ipcode").value!="")   theParams  += "&postalcode=" + document.getElementById("ipcode").value;

    var myAjax = new OpenLayers.Ajax.Request(
    	theUrl,
    	{
    		method: 'get',
    		parameters: theParams,
    		onComplete: showResponseGEO,
    		onFailure: showResponseFailureGEO
    	});

    tdSearchResultIdx = document.getElementById("selGEONAMES").selectedIndex;
    tdSearchResult = document.getElementById("tdspanselResult").innerHTML;
    document.getElementById("tdspanselResult").innerHTML = "<img height='8px' src='images/working.gif'>";
}

var tdSearchResult = "";
var tdSearchResultIdx = 0;
var geoNames = new Array();
var bana;

function showResponseGEO(originalRequest)  //Wikipedia
{
    if(originalRequest.responseText.substr(0,6)=="Error:")
    {   document.getElementById("tdspanselResult").innerHTML = tdSearchResult;
        document.getElementById("selGEONAMES")[tdSearchResultIdx].selected=true;
        showResponseFailureGEO(originalRequest);
        return false;
    }

    bana = eval('(' + originalRequest.responseText + ')');

    var derString = "";
    var vbCrLf = "\r\n";

    var theObj = bana["geonames"];

    if(!bana['geonames'] || bana['geonames'] == "")
    {
        if(bana['status'])
            alert(bana['status']['message']);
        else if(bana['geonames'] == "")
            alert('Keine Einträge gefunden');
        else
            alert('Undefined error!' + '\r\n' + originalRequest.responseText);

        document.getElementById("tdspanselResult").innerHTML = tdSearchResult;
        document.getElementById("selGEONAMES")[tdSearchResultIdx].selected=true;
        return false;
    }

    var theSelHTML = "<select id='selGEONAMES' width='200' onchange='showSummary()'>" + vbCrLf;

    for(var i=0;i<theObj.length;i++){
        geoNames[i] = new Array();
        geoNames[i]["summary"]      = theObj[i]["summary"];
        geoNames[i]["title"]        = theObj[i]["title"];
        geoNames[i]["wikipediaUrl"] = theObj[i]["wikipediaUrl"];
        geoNames[i]["elevation"]    = theObj[i]["elevation"];
        geoNames[i]["lng"]          = theObj[i]["lng"];
        geoNames[i]["feature"]      = theObj[i]["feature"];
        geoNames[i]["lang"]         = theObj[i]["lang"];
        geoNames[i]["lat"]          = theObj[i]["lat"];
        geoNames[i]["population"]   = theObj[i]["population"];
        geoNames[i]["thumbnailImg"] = theObj[i]["thumbnailImg"];

        theSelHTML += "<option value='" + i + "," + geoNames[i]["lng"] + "," + geoNames[i]["lat"] + "," + geoNames[i]["wikipediaUrl"] + "'>" + (geoNames[i]["title"] + ", " + geoNames[i]["feature"]).substr(0,selTextLen) + vbCrLf;
    }

    theSelHTML += "</select>";
    document.getElementById("tdspanselResult").innerHTML = theSelHTML;

    showSummary();
}

function showResponseFailureGEO(originalRequest) //Wikipedia
{
    document.getElementById("tdspanselResult").innerHTML = tdSearchResult;
    document.getElementById("selGEONAMES")[tdSearchResultIdx].selected=true;
    alert("showResponseFailureGEO:"+originalRequest.responseText);
}

//####################################################################################
//####################################################################################
//####################################################################################
function searchNearBy()
{
    geoSearchService = "NearBygeonames.org";
    getSearchOptions();

    var lon = map.getCenter().lon;
    var lat = map.getCenter().lat;
    var point = OpenLayers.Layer.SphericalMercator.inverseMercator(lon, lat);

    if(document.implementation && document.implementation.createDocument)
    {
        var theUrl = aspProxy;
        var theParams  = "http://ws.geonames.org/findNearbyPlaceNameJSON";
            theParams  += "?lng=" + point.lon;
    }
    else
    {
        var theUrl = "http://ws.geonames.org/findNearbyPlaceNameJSON";
        var theParams  = "lng=" + point.lon;
    }
    theParams  += "&lat=" + point.lat;
    theParams  += "&radius="     + geoSearchRadius;
    theParams  += "&maxRows="    + geoSearchRows;
    theParams  += "&style=FULL";

    var myAjax = new OpenLayers.Ajax.Request(
    	theUrl,
    	{
    		method: 'get',
    		parameters: theParams,
    		onComplete: showResponseGEOplace,
    		onFailure: showResponseFailureGEOplace
    	});

    tdSearchResultIdx = document.getElementById("selGEONAMES").selectedIndex;
    tdSearchResult = document.getElementById("tdspanselResult").innerHTML;
    document.getElementById("tdspanselResult").innerHTML = "<img height='8px' src='images/working.gif'>";
}

function showResponseGEOplace(originalRequest) //ws.geonames.org
{
    if(originalRequest.responseText.substr(0,6)=="Error:")
    {   showResponseFailureGEOplace(originalRequest);
        document.getElementById("selGEONAMES")[tdSearchResultIdx].selected=true;
        return false;
    }
    var bana = eval('(' + originalRequest.responseText + ')');

    var derString = "";
    var vbCrLf = "\r\n";

    var theObj = bana["geonames"];

    //var theSelHTML = "<select id='selGEONAMES' width='200' onchange='showSummary()'>" + vbCrLf;
    var theSelHTML = "<select id='selGEONAMES' width='200'>" + vbCrLf;

    for(i=0;i<theObj.length;i++){
        geoNames[i] = new Array();
        geoNames[i]["countryName"] = theObj[i]["countryName"];
        geoNames[i]["adminCode1"] = theObj[i]["adminCode1"];
        geoNames[i]["fclName"] = theObj[i]["fclName"];
        geoNames[i]["countryCode"] = theObj[i]["countryCode"];
        geoNames[i]["lng"] = theObj[i]["lng"];
        geoNames[i]["fcodeName"] = theObj[i]["fcodeName"];
        geoNames[i]["fcl"] = theObj[i]["fcl"];
        geoNames[i]["name"] = theObj[i]["name"];
        geoNames[i]["fcode"] = theObj[i]["fcode"];
        geoNames[i]["geonameId"] = theObj[i]["geonameId"];
        geoNames[i]["lat"] = theObj[i]["lat"];
        geoNames[i]["population"] = theObj[i]["population"];
        geoNames[i]["adminName1"] = theObj[i]["adminName1"];

        theSelHTML += "<option value='" + i + "," + geoNames[i]["lng"] + "," + geoNames[i]["lat"] + "'>" + (geoNames[i]["name"] + ", " + geoNames[i]["countryCode"] + ", " + geoNames[i]["adminName1"]).substr(0,selTextLen) + vbCrLf;
    }

    theSelHTML += "</select>";
    document.getElementById("tdspanselResult").innerHTML = theSelHTML;

    showSummary();
}

function showResponseFailureGEOplace(originalRequest) //ws.geonames.org
{
    try{
        document.getElementById("tdspanselResult").innerHTML = "";
        parent.frames['fr_R'].document.getElementById("divMessage").innerHTML = originalRequest.responseText + "<br><br>";
        parent.frames['fr_R'].document.getElementById("taMessage").style.display = "none";
        parent.frames['fr_R'].document.getElementById("divMessage").style.display = "block";
    }catch(err)
    {   alert(originalRequest.responseText);
    }
}

//####################################################################################
//####################################################################################
//####################################################################################
/* siehe clickpoint.html
function showSummary()
{
    var tmpCenter = document.getElementById("selGEONAMES").value.split(",");

    if(geoSearchService=="NearByWikipedia")
    {
        var msg = "<b>" + geoSearchService + "</b><br><br>";
        var theUrl = "<a href='http://" + tmpCenter[3] + "' target='_new'>" + document.getElementById("selGEONAMES")[tmpCenter[0]].textContent + "</a>";

        if( (typeof geoNames[tmpCenter[0]]["thumbnailImg"]) != 'undefined')
            msg += "<img src='" + geoNames[tmpCenter[0]]["thumbnailImg"] + "'><br>";
        msg += "<b>Summary:</b> ... " + geoNames[tmpCenter[0]]["summary"] + "<br>";
        msg += theUrl;

        try{
            parent.frames['fr_R'].document.getElementById("divMessage").innerHTML =  msg + "<br><br>";
            parent.frames['fr_R'].document.getElementById("taMessage").style.display = "none";
            parent.frames['fr_R'].document.getElementById("divMessage").style.display = "block";
        }catch(err){
            alert(msg);
        }

    }
    else if(geoSearchService=="NearBygeonames.org")
    {
        var msg="";
        for(item in geoNames[tmpCenter[0]])
        {
          msg+=item + ", " + geoNames[tmpCenter[0]][item] + "\r\n";
        }
        try{
            parent.frames['fr_R'].document.getElementById("taMessage").value =  msg + "\r\n\r\n";
            parent.frames['fr_R'].document.getElementById("taMessage").style.display = "block";
            parent.frames['fr_R'].document.getElementById("divMessage").style.display = "none";
        }catch(err){
            alert(msg);
        }
    }
}
siehe clickpoint.html  */


