var dxPANO = 40;
var rangePANO = 0;
var countPANO;
var selTextLen = 50;

function searchPanoramio()
{
    geoSearchService = "Panoramio";
    getSearchOptions();

    var dx = geoSearchRadius*dxPANO;

    if(searchOnResult==true)
    {   var tmp = document.getElementById("selGEONAMES").value.split(",");
        var lon = parseFloat(tmp[1]);
        var lat = parseFloat(tmp[2]);

        //4326 -> 900913
        var pointA = OpenLayers.Layer.SphericalMercator.forwardMercator(lon, lat);

        var x0 = pointA.lon-dx/2;
        var y0 = pointA.lat-dx/2;
        var x1 = pointA.lon+dx/2;
        var y1 = pointA.lat+dx/2;

        //900913 -> 4326
        var pointA = OpenLayers.Layer.SphericalMercator.inverseMercator(x0, y0);
        var pointB = OpenLayers.Layer.SphericalMercator.inverseMercator(x1, y1);

        var x0 = pointA.lon;
        var y0 = pointA.lat;
        var x1 = pointB.lon;
        var y1 = pointB.lat;

    }
    else
    {
        var lon = map.getCenter().lon;
        var lat = map.getCenter().lat;

        var x0 = lon-dx/2;
        var y0 = lat-dx/2;
        var x1 = lon+dx/2;
        var y1 = lat+dx/2;

        //900913 -> 4326
        var pointA = OpenLayers.Layer.SphericalMercator.inverseMercator(x0, y0);
        var pointB = OpenLayers.Layer.SphericalMercator.inverseMercator(x1, y1);

        var x0 = pointA.lon;
        var y0 = pointA.lat;
        var x1 = pointB.lon;
        var y1 = pointB.lat;
    }

    //if(document.implementation && document.implementation.createDocument)
    if(true)
    {
        var theUrl = aspProxy;
        var theParams  = QuestionMark + "url=http://www.panoramio.com/map/get_panoramas.php";
            theParams  += "&minx=" + x0;
    }
    else
    {
        var theUrl = "http://www.panoramio.com/map/get_panoramas.php";
        var theParams  = QuestionMark + "minx=" + x0;
    }
    theParams  += "&miny=" + y0;
    theParams  += "&maxx=" + x1;
    theParams  += "&maxy=" + y1;
    if(rangePANO*100<countPANO)
        theParams  += "&next=" + rangePANO;
    else
        theParams  += "&next=0";

    var myAjax = new OpenLayers.Ajax.Request(
    	theUrl,
    	{
    		method: 'get',
    		parameters: theParams,
    		onComplete: showResponsePANO,
    		onFailure: showResponseFailurePANO
    	});

    tdSearchResultIdx = document.getElementById("selGEONAMES").selectedIndex;
    tdSearchResult = document.getElementById("tdspanselResult").innerHTML;
    document.getElementById("tdspanselResult").innerHTML = "<img height='8px' src='images/working.gif'>";
}

var imgPANO = new Array();
var panoPhotos;

function showResponsePANO(originalRequest)  //Panoramio
{
    if(originalRequest.responseText.substr(0,6)=="Error:")
    {   document.getElementById("tdspanselResult").innerHTML = tdSearchResult;
        document.getElementById("selGEONAMES")[tdSearchResultIdx].selected=true;
        showResponseFailurePANO(originalRequest);
        return false;
    }

    panoPhotos = eval('(' + originalRequest.responseText + ')');

    var derString = "";
    var vbCrLf = "\r\n";

    var theObj = panoPhotos["photos"];

    if(!panoPhotos["photos"] || panoPhotos["photos"] == "")
    {
        if(panoPhotos['status'])
            alert(panoPhotos['status']['message']);
        else if(panoPhotos['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;
    }

    countPANO = panoPhotos["count"];
    var maxNo = (rangePANO*100+100)<countPANO ? (rangePANO*100+100) : countPANO;
    var theSelHTML = "<select id='selGEONAMES' width='200' onchange='showPANO()' title='" + rangePANO*100 +"-" + maxNo + "/" + countPANO + "'>" + vbCrLf;

    for(var i=0;i<theObj.length;i++){
        imgPANO[i] = new Array();
        imgPANO[i]["photo_id"]       = theObj[i]["photo_id"];
        imgPANO[i]["photo_title"]    = theObj[i]["photo_title"];
        imgPANO[i]["photo_url"]      = theObj[i]["photo_url"];
        imgPANO[i]["photo_file_url"] = theObj[i]["photo_file_url"];
        imgPANO[i]["longitude"]      = theObj[i]["longitude"];
        imgPANO[i]["latitude"]       = theObj[i]["latitude"];
        imgPANO[i]["width"]          = theObj[i]["width"];
        imgPANO[i]["height"]         = theObj[i]["height"];
        imgPANO[i]["upload_date"]    = theObj[i]["upload_date"];
        imgPANO[i]["owner_id"]       = theObj[i]["owner_id"];
        imgPANO[i]["owner_name"]     = theObj[i]["owner_name"];
        imgPANO[i]["owner_url"]      = theObj[i]["owner_url"];

        theSelHTML += "<option value='" + i + "," + imgPANO[i]["longitude"] + "," + imgPANO[i]["latitude"] + "," + imgPANO[i]["photo_file_url"] + "," + imgPANO[i]["width"] + "," + imgPANO[i]["height"] + "'>" + imgPANO[i]["photo_title"].substr(0,selTextLen) + vbCrLf;
    }

    theSelHTML += "</select>";
    document.getElementById("tdspanselResult").innerHTML = theSelHTML;

    showPANO();
}

function showResponseFailurePANO(originalRequest) //Panoramio
{
    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);
    }
}

function showPANO()
{   //return false;
    var tmpCenter = document.getElementById("selGEONAMES").value.split(",");

    var idx    = parseFloat(tmpCenter[0]);
    var lon    = parseFloat(tmpCenter[1]);
    var lat    = parseFloat(tmpCenter[2]);
    var theImg = tmpCenter[3];
    var w      = parseFloat(tmpCenter[4]);
    var h      = parseFloat(tmpCenter[5]);

    var logo    = "http://www.panoramio.com/img/logo-panoramio-google.gif";
    var IMGPANO = imgPANO[idx];

    try{
        var nextImg      = new Image();
            nextImg.src  = imgPANO[idx+1]["photo_file_url"];
        var nextImg2     = new Image();
            nextImg2.src = imgPANO[idx+2]["photo_file_url"];
    }catch(err){;};

    txtOnClick = "map.setCenter(new OpenLayers.LonLat(" + OpenLayers.Layer.SphericalMercator.forwardMercator(lon, lat).lon + ", " + OpenLayers.Layer.SphericalMercator.forwardMercator(lon, lat).lat + "), map.getZoom());"

    var msg = "<div style='overflow:auto;color:black;padding:4px;'>"

    if(w/h < 430/278)
    {   msg += "<SPAN STYLE='position: absolute;width:100%;left:10px;top:34px;'><IMG SRC='" + logo + "' width='20%'></SPAN>";
        msg += "<center><img src='" + theImg + "' height='80%' title='" + IMGPANO["photo_title"] + "'></center>";
    }
    else
    {   msg += "<SPAN STYLE='position: absolute;width:100%;left:8px;top:34px;'><IMG SRC='" + logo + "' width='20%'></SPAN>";
        msg += "<center><img src='" + theImg + "' width='95%' title='" + IMGPANO["photo_title"] + "'></center>";
    }

    if(POPauto==true)
    {   var PoP = "";
        PointOfPicture();
    }
    else
        var PoP = "&#160;<span title='Set Marker' style='cursor:pointer;' onclick='PointOfPicture()'><b>*</b></span>&#160;"

    //var innerBackward = "<b>&lt;&lt;&#160;</b>";
    var innerBackward = "<img class='ico' style='background-color:#B0D0FF' src='icons/arrow1_w.gif'>";
    if(idx==0)
       var backward = "<span style='cursor:pointer;' onclick='document.getElementById(\"selGEONAMES\")[" + (document.getElementById("selGEONAMES").length-1) + "].selected=true;showPANO()'>" + innerBackward + "</span>"
    else
       var backward = "<span style='cursor:pointer;' onclick='document.getElementById(\"selGEONAMES\")[" + (idx-1) + "].selected=true;showPANO()'>" + innerBackward + "</span>"

    //var innerForward = "<b>&#160;&gt;&gt;</b>";
    var innerForward = "<img class='ico' style='background-color:#B0D0FF' src='icons/arrow1_e.gif'>";
    if(idx==document.getElementById("selGEONAMES").length-1)
       var forward = "<span style='cursor:pointer;' onclick='document.getElementById(\"selGEONAMES\")[" + (0) + "].selected=true;showPANO()'>" + innerForward + "</span>"
    else
       var forward = "<span style='cursor:pointer;' onclick='document.getElementById(\"selGEONAMES\")[" + (idx+1) + "].selected=true;showPANO()'>" + innerForward + "</span>"

    var bigImg = "http://www.panoramio.com/photos/original/" + IMGPANO["photo_id"] + ".jpg";
    var newImgWindow = "<A HREF='" + bigImg + "' title='new window' target='bigImage'>big</A>";

    var dwW = dragableWindows["popup"][5].w.w;
if(!window.ActiveXObject)
    msg += "<center id='ctr01' style='position: absolute; width: " + dwW + "px; left: 2px; bottom: 2px;'><table><tr><td>" + backward + PoP + "</td><td style='text-align: center; width: 100%;'><A HREF='" + IMGPANO["owner_url"] + "'>" + IMGPANO["owner_name"].replace(/\(.*$/,"") + "</A>";
else
    msg += "<center id='ctr01' style='position: absolute; width: " + (dwW-46) + "px; left: 20px; bottom: 2px;'><table><tr><td>" + backward + PoP + "</td><td style='text-align: center; width: 100%;'><A HREF='" + IMGPANO["owner_url"] + "'>" + IMGPANO["owner_name"].replace(/\(.*$/,"") + "</A>";
    msg += "&#160;<A HREF='" + IMGPANO["photo_url"] + "'>Photo</A>&#160;" + newImgWindow + "</td><td>" + forward + "</td></tr></table>";
    msg += "<span style='font-size:9px;'>Photos zur Verfügung gestellt von Panoramio unterliegen dem Copyright Ihrer Eigentümer.</span><center>";
    msg += "</div>";

    dragableWindows["popup"][5].HTML = msg;
    showDragDiv(dragableWindows['popup'][5]);
}

var prevPoP;
var POPauto = true;
var POPradius  = 5;
var POPcolor   = "#00FF88";
var POPopacity = 0.25;
var POPstrokewidth = 2;

function PointOfPicture()
{
    if(prevPoP)
        vectorResults.removeFeatures(prevPoP);
    var obj=document.getElementById("selGEONAMES");
    var lon = parseFloat(obj.value.split(",")[1]);
    var lat = parseFloat(obj.value.split(",")[2]);

    var pointA = OpenLayers.Layer.SphericalMercator.forwardMercator(lon, lat);
    var pointB = new OpenLayers.Geometry.Point(pointA.lon, pointA.lat);

    prevPoP=createPointFeature(vectorResults, pointB, POPopacity, POPcolor, POPradius, POPstrokewidth);
}

//####################################################################################
/*
opener.document.getElementById("ctr01").style.width="384px";
opener.document.getElementById("ctr01").style.left="20px";
*/
//####################################################################################


