var PANELCONTROL = "panel1" //Nome do objecto do painel da pesquisa
var PAGE_RECORDS = 40;  //Número de registos de cadapágina da pesquisa
var gPanelIsBusy = false;

function ChangePanelStatusToLoading()
{
	gPanelIsBusy=true;   
}
function ChangePanelStatusToMain()
{
	gPanelIsBusy=false;
}

function btn_searchAAE_onclick(button, controlUpdate) {

    $("#pesquisaAAE").accordion('activate', 1);
    DoSearchAAE(1, controlUpdate);
}

function DoSearchAAE(page, controlUpdate) {

    document.getElementById(controlUpdate).innerHTML = "";

    var id = "";
    var concelho = "";
    var disponibilidade = "";
    var escaloes= "";

    concelho = $("#pesquisa_ddl_concelho").val();
    disponibilidade = $("#pesquisa_lst_disponibilidade input:checked").map(function() { return $(this).val(); }).get().join("|");
    escaloes = $("#pesquisa_lst_escaloes input:checked").map(function() { return $(this).val(); }).get().join("|");
    
    var geomWKT = "";

    if ($("#chkFiltroAAEAreaVisivel").attr("checked")) {
        geomWKT = map.getExtent().toGeometry().toString();
    } else if ($("#chkFiltroAAEPoligono").attr("checked")) {
        geomWKT = DoGetFeaturesGeometry();

        if (geomWKT == null || geomWKT.length == 0) {
            errorMsg = errorMsg + "<div style='color: red'>- Tem que delimitar o geometria de selecção.</div>";

            ChangePanelStatusToMain();

            document.getElementById(controlUpdate).innerHTML = errorMsg;

            return false;
        }
    }    
    

    var lang = "";

    if (document.getElementById("language") != null && document.getElementById("language").value != "") {
        lang = document.getElementById("language").value
    }

    doWaitingSearch("pnl_Lista");

    AAE_DEV.Ajax.Requests.DoSearchAAE(concelho, disponibilidade, escaloes, geomWKT, page, PAGE_RECORDS, lang, controlUpdate, DoSearchAAE_CallBack);
}
function DoSearchAAE_CallBack(response) {
    ChangePanelStatusToMain();

    if (response == null) {

        return;
    }

    if (response.error != null) {

        alert(response.error);
        return;
    }

    if (response.value == null) {

        return;
    }


    document.getElementById(response.value[0]).innerHTML = "";
    document.getElementById(response.value[0]).innerHTML = response.value[1];

    if (document.getElementById("Info") != null) {
        document.getElementById("Info").innerHTML = "";
    }


    $(".testepoi").bind("mouseover", function() {
        var id = "aae_" + $(this).attr("gid");

        var featuresLayer = map.getLayersByName("features")[0];

        var feature = featuresLayer.getFeatureById(id);

        if (feature != null) {
            featuresLayer.drawFeature(feature, style_mark_sel);
        }
    }
	).bind("mouseout", function() {
	    var id = "aae_" + $(this).attr("gid");

	    var featuresLayer = map.getLayersByName("features")[0];

	    var feature = featuresLayer.getFeatureById(id);

	    if (feature != null) {
	        featuresLayer.drawFeature(feature, style_mark);
	    }
	}
    );


    var layer = map.getLayersByName("features")[0];

    layer.destroyFeatures();

    var pos = response.value[3];

    var vpos = pos.split("#");

    var num = vpos.length

    var point;
    var feature;

    for (i = 0; i < num; i++) {
        sData = vpos[i].split("|");

        point = new OpenLayers.Geometry.Point(sData[1], sData[2]);

        feature = new OpenLayers.Feature.Vector(point, { type: 0 }, style_mark);
        feature.id = "aae_" + sData[0];

        var popupHTML = "<div style='color: #0078AE; font-weight: bold; margin-top: 10px; margin-left: 5px; margin-right: 5px;'>";
        popupHTML += sData[3] + " - " + sData[4] + "</div>";
        popupHTML += "<div>Concelho: " + sData[5] + "</div>";
        popupHTML += "<div style='text-align: center; margin-top: 20px; margin-bottom: 10px;'>";
        popupHTML += "<a href='#' class='ui-state-default ui-corner-all button' onclick='btnTemas_activate(); DoShowAEEInfo(\"" + sData[3] + "\"); outerLayout.open(\"east\");'>" + str_ver_informacao + "</a>";
        popupHTML += "</div>";               

        feature.data = { html: popupHTML };

        layer.addFeatures([feature]);
    }

}


function DoZoomLoteAAE(id) {
    AAE_DEV.Ajax.Requests.DoSelectLote(id, DoZoomAAELote_CallBack);
}
function DoZoomAAELote_CallBack(response) {
    if (response == null) {
        //ChangeToMain();

        return;
    }

    if (response.error != null) {
        alert(response.error);

        //ChangeToMain();

        return;
    }

    if (response.value == null) {
        //ChangeToMain();
    }

    var layer = map.getLayersByName("edition")[0];

    layer.removeFeatures(layer.features, true);

    var feature = wkt_trans.read(response.value[1]);
    feature.id = "obra_pol";

    var popupHTML = "<div style='font-size:1em'>" + response.value[3] + "<br />";
    popupHTML += "Concelho: " + response.value[5] + "</div>";
    popupHTML += "Disponibilidade: " + response.value[4] + "</div>";    

    if (feature != null && feature != undefined) {
        feature.data = { html: popupHTML };

        layer.addFeatures(feature);
    }

    if (MAPSERVER_SELECTION) {
        var l = map.getLayer("ol_layer_mapserver1");

        if (l != null) {
            l.params["obraid"] = response.value[0];
        }
    }

    var extent = wkt_trans.read(response.value[2]);

    if (extent != null && extent != undefined) {
        var bnd = extent.geometry.getBounds().clone();

        bnd.left = bnd.left - 50;
        bnd.right = bnd.right + 50;
        bnd.top = bnd.top + 50;
        bnd.bottom = bnd.bottom - 50;

        map.zoomToExtent(bnd);
    }
}

function pesquisa_ddl_concelho_onchange() {

    var cod_conc = $("#pesquisa_ddl_concelho").val();

    if (cod_conc != "") {
        DoZoomConcelhoByCod(cod_conc);
    } else {

        var l = map.getLayer("ol_layer_mapserver1");

        if (l != null) {
            l.params["codconc"] = "-1";
        }    
        
        map.zoomToMaxExtent();
    }
}

function DoZoomConcelhoByCod(cod_conc) {
    var extentWKT = $("#pesquisa_ddl_concelho option:[value='" + cod_conc + "']").attr("extent");
    
    var l = map.getLayer("ol_layer_mapserver1");

    if (l != null) {
        l.params["codconc"] = cod_conc;
    }   

    if (extentWKT != "") {
        var extent = wkt_trans.read(extentWKT);

        if (extent != null && extent != undefined) {
            var bnd = extent.geometry.getBounds().clone();

            bnd.left = bnd.left - 50;
            bnd.right = bnd.right + 50;
            bnd.top = bnd.top + 50;
            bnd.bottom = bnd.bottom - 50;

            map.zoomToExtent(bnd);
        }
    }            
    
}

function zoom_ddl_aae_onchange() {

    var aae = $("#zoom_ddl_aae").val();

    $("#zoom_ddl_aae").attr("title", $("#zoom_ddl_aae option:selected").text());

    AAE_DEV.Ajax.Requests.DoSelectAAE(aae, DoZoomAAE_CallBack);


}
//function DoZoomAEE(aae_id) {
//    var s = "";
//    
//    s="sdfsdf";
//    //AAE_DEV.Ajax.Requests.DoSelectAAE(aae_id, DoZoomAAE_CallBack);
//}
function DoZoomAAE_CallBack(response) {
    if (response == null) {
        //ChangeToMain();

        return;
    }

    if (response.error != null) {
        alert(response.error);

        //ChangeToMain();

        return;
    }

    if (response.value == null) {
        //ChangeToMain();
    }

    var layer = map.getLayersByName("edition")[0];

    layer.removeFeatures(layer.features, true);

    var feature = wkt_trans.read(response.value[1]);
    feature.id = "obra_pol";

    var popupHTML = "<div style='font-size:1em'>" + response.value[3] + "<br /></div>";

    if (feature != null && feature != undefined) {
        feature.data = { html: popupHTML };

        layer.addFeatures(feature);
    }

    if (MAPSERVER_SELECTION) {
        var l = map.getLayer("ol_layer_mapserver1");

        if (l != null) {
            l.params["obraid"] = response.value[0];
        }
    }

    var extent = wkt_trans.read(response.value[2]);

    if (extent != null && extent != undefined) {
        var bnd = extent.geometry.getBounds().clone();

        bnd.left = bnd.left - 50;
        bnd.right = bnd.right + 50;
        bnd.top = bnd.top + 50;
        bnd.bottom = bnd.bottom - 50;

        map.zoomToExtent(bnd);
    }
}

function DoShowAEEInfo(aae_id) {

    disponibilidade = $("#pesquisa_lst_disponibilidade input:checked").map(function() { return $(this).val(); }).get().join("|");
    areas = $("#pesquisa_lst_escaloes input:checked").map(function() { return $(this).val(); }).get().join("|");

    var polyGeometry = "";

    var lang = "";

    if (document.getElementById("language") != null && document.getElementById("language").value != "") {
        lang = document.getElementById("language").value
    }

    doWaitingSearch("pnl_Info");
    
    AAE_DEV.Ajax.Requests.DoGetAAEInfo(aae_id, disponibilidade, areas, polyGeometry, lang, "pnl_Info", DoGetAAEInfo_CallBack)
}
function DoShowAEEInfoSimple(aae_id) {

    AAE_DEV.Ajax.Requests.DoGetAAEInfo(aae_id, "", "", "", "", "pnl_Info", DoGetAAEInfo_CallBack);
}

function DoGetAAEInfo_CallBack(response) {
    ChangePanelStatusToMain();

    if (response == null) {

        return;
    }

    if (response.error != null) {

        alert(response.error);
        return;
    }

    if (response.value == null) {

        return;
    }

    try
    {
        $('#info_acessibilidades').dialog('destroy');
    }
    catch(err) {}
    
    
    document.getElementById(response.value[0]).innerHTML = "";
    document.getElementById(response.value[0]).innerHTML = response.value[1];

    if (document.getElementById("Info") != null) {
        document.getElementById("Info").innerHTML = "";
    }

    var layer = map.getLayersByName("features")[0];

    //layer.destroyFeatures();
    for(var i=layer.features.length-1; i>=0; i--)
    {
        if (layer.features[i].id.substring(0,3) != "aae") {
            layer.destroyFeatures(layer.features[i]);
        }
    }

    var pos = response.value[3];

    var vpos = pos.split("#");

    var num = vpos.length

    var feature;
     

    for (i = 0; i < num; i++) {
        sData = vpos[i].split("|");

        var feature = wkt_trans.read(sData[4]);
        
        if (sData[2] == "1" && sData[3] == "1")
        {
            feature.style = style_mark_lotes;
        }                

        //var popupHTML = "<div style='font-size:.8em'>" + "<br />" + response.value[0] + "<br />" + "</div>";
        var popupHTML = "";
        

        if (feature != null && feature != undefined) {
            feature.data = { html: popupHTML, action: "infoLoteAAE.ashx", gid: sData[0] };

            layer.addFeatures(feature);
        }
    }
}