﻿var activePOISearch = null;

function Panel(id, preserveState, state, onLoadEvent)
{
    this.panelId = id;
    this.preserveState = preserveState; 
    this.panelState = state;
    this.DoOnLoad = onLoadEvent;
}

function getPanelById(panelId)
{
    var retVal = null;
    
    try
    {
        retVal = panels[panelId];

        if (retVal == undefined) {
            retVal = null;
        }
    } catch (ex) {
        retVal = null;
    }
        
    return retVal;
}

//SHOW PANELS
function showPanel(panelId, data, layoutPanelId)
{
    var lang = getCurrentLanguage();

    if (layoutPanelId != null && layoutPanelId != undefined) {
        outerLayout.open(layoutPanelId);
    }
            
    var pnl = getPanelById($j("#sidebar").attr("panel"));
    
    $j("#sidebar").css("background-color","");
    
    if (pnl != null && pnl.preserveState)
    {
        pnl.panelState = $j("#sidebar").html();    
    }
    
    pnl = getPanelById(panelId);
    
    if (pnl != null && pnl.panelState != "")
    {       
        showPanel_CallBack(pnl.panelState);            
    } else {
        doWaitingSearch("sidebar");
    
        if (data != null)
        {
            $j.post("Panel.aspx", data, showPanel_CallBack);
        } else {
            $j.post("Panel.aspx", { id : panelId, lang : lang }, showPanel_CallBack);
        }            
    }          
                        
    return false;

    function showPanel_CallBack(response)
    {
        $j("#sidebar").attr("panel",panelId);            
        $j("#sidebar").html(response);
        
        var pnl = getPanelById(panelId);
        
        if (pnl != null && pnl.DoOnLoad != null)
        {
            pnl.DoOnLoad();
                        
        }
        	    
	    return false;
    }    
}

function panel_onKeyPress(control, e, func)
{                
    var characterCode;  
                
    if(e && e.which)
    { //if which property of event object is supported (NN4)
        e = e;
        characterCode = e.which;
    }
    else
    {
        e = event;
        characterCode = e.keyCode; //character code is contained in IE's keyCode property
    }    

    //(if enter key)
    if(characterCode == 13)
    {                
        if (document.getElementById("panelControlPrefix") != null)
        {
            controlPrefix = document.getElementById("panelControlPrefix").value;
        }
     
        if (func != null)
        {
            func();
        } else {
            executeSearch(controlPrefix);
        }
        
        return false;
    }
    
    return true;        
}


function poiSearch(mainClass, subClass, name, address, admin1, admin2, geometry)
{
    this.Class = mainClass;
    this.SubClass = subClass;
    this.Name = name;
    this.Address = address;
    this.MainAdminUnit = admin1;
    this.SubAdminUnit = admin2;
    this.Geometry = geometry;
}

function searchArea(index, selected, searchFunction, controlPrefix)
{
    this.myIndex = index;
    this.mySelected = selected;	    	    
    this.doSearch = searchFunction;
    this.myControlPrefix=controlPrefix;
}

var searchAreas=new Array();
searchAreas[searchAreas.length]= new searchArea("0", false, null);
searchAreas[searchAreas.length]= new searchArea("1", false, function () {btn_searchPlaces_onclick(null, "pnl_Lista");}); 
searchAreas[searchAreas.length]= new searchArea("2", false, function () {btn_searchStreets_onclick(null, "pnl_Lista");});
searchAreas[searchAreas.length] = new searchArea("3", true, function() { btn_searchPOI_onclick(null, "pnl_Lista"); });
searchAreas[searchAreas.length] = new searchArea("4", true, function() { btn_searchCadastro_onclick(null, "pnl_Lista"); });

var searchAreasCoordinates = new Array();
searchAreasCoordinates[searchAreasCoordinates.length] = new searchArea("0", false, null);
searchAreasCoordinates[searchAreasCoordinates.length] = new searchArea("1", false, null);

var searchAreasPlantas = new Array();
searchAreasPlantas[searchAreasPlantas.length] = new searchArea("0", false, null);
searchAreasPlantas[searchAreasPlantas.length] = new searchArea("1", false, null);
searchAreasPlantas[searchAreasPlantas.length] = new searchArea("2", false, null);
searchAreasPlantas[searchAreasPlantas.length] = new searchArea("3", false, null);

var searchAreasPlanos = new Array();
searchAreasPlanos[searchAreasPlanos.length] = new searchArea("0", false, null);
searchAreasPlanos[searchAreasPlanos.length] = new searchArea("1", false, null);

var searchAreasUrbanismo = new Array();
searchAreasUrbanismo[searchAreasUrbanismo.length] = new searchArea("0", false, null);
searchAreasUrbanismo[searchAreasUrbanismo.length] = new searchArea("1", true, function() { btn_searchObras_onclick(null, "pnl_Lista"); });

function showSearchArea(areaObj, arrayAreas, index, animation)
{		
    var searchArea;
    
    if (document.getElementById("btn_sidebar_search") != null)
    {
        document.getElementById("btn_sidebar_search").style.visibility="hidden";
    }
    
    if (areaObj != null)
    {
        $j("div.searchHeaderNav").css("background-image","url('images/page/nav_band_expand.gif')");
    }
    	    	
    for (i=0; i<arrayAreas.length; i++)
    {	    	     
        searchArea = arrayAreas[i];
        
        if (index != searchArea.myIndex)
        {	
            if (document.getElementById("searchArea" + searchArea.myIndex) != null)          	        
            {               
                if (animation)
                {
                    $j("#searchArea" + searchArea.myIndex).hide(500);
                } else {
                    document.getElementById("searchArea" + searchArea.myIndex).style.display = "none";
                }
            }
            searchArea.mySelected = false;	            	            
        } else {
        
            if (document.getElementById("searchArea" + searchArea.myIndex) != null)          	        
            {   
                if (document.getElementById("searchArea" + searchArea.myIndex).style.display != "block")
                {
                    document.getElementById("searchArea" + searchArea.myIndex).style.display = "block";
                    
                    if (areaObj != null)
                    {                    
                        $j(areaObj).css("background-image","url('images/page/nav_band_contract.gif')");                    
                    }
                                                   
                } else {
                    if (animation)
                    {
                        $j("#searchArea" + searchArea.myIndex).hide(500);
                    } else {
                        document.getElementById("searchArea" + searchArea.myIndex).style.display = "none";                        
                    }                   
                }                   
            }
            
            if (index != "0")
            {
                if (document.getElementById("btn_sidebar_search") != null)
                {
			        document.getElementById("btn_sidebar_search").style.visibility="visible";            
			    }
			}
           
            if (!searchArea.mySelected)
            {	           
                searchArea.mySelected = true;	            	           	            
                activePOISearch = null;
                $j("#pnl_Lista").html("");                               
            }	            
        }	        
    }	    
    
    return false;
}


function toggleSearchAreaVisibility(areaObj, controlId, animation)
{		        	    		
    if (document.getElementById(controlId) != null)          	        
    {
        if (document.getElementById(controlId).style.display != "block")
        {
            document.getElementById(controlId).style.display = "block";
            
            if (areaObj != null)
            {
                $j(areaObj).css("background-image","url('images/page/nav_band_contract.gif')");     
            }            
                                            
        } else {
            if (animation)
            {
                $j("#" + controlId).hide(500);
            } else {
                document.getElementById(controlId).style.display = "none";
            }
            
            if (areaObj != null)
            {
                $j(areaObj).css("background-image","url('images/page/nav_band_expand.gif')");     
            }             
        }                                          	            
    }
    	       
    return false;
}

function executeSearch(controlPrefix, arrayAreas)
{
    var searchArea;
    
    if (controlPrefix == null || controlPrefix == "")
    {
        if (document.getElementById("panelControlPrefix") != null)
        {
            controlPrefix = document.getElementById("panelControlPrefix").value;
        }
    }

    var areas = searchAreas;

    if (arrayAreas != null) areas = arrayAreas;

    for (i = 0; i < areas.length; i++)
    {
        searchArea = areas[i];
        
        if (searchArea.mySelected)
        {                                        	            	        	        
            searchArea.myControlPrefix=controlPrefix;            
            searchArea.doSearch();

            $j("#searchArea" + searchArea.myIndex).hide(500);

            $j(".searchHeaderNav").css("background-image", "url('images/page/nav_band_expand.gif')");          
            
            return false;
        }
    }
                  
    return false;	        
}
function doWaitingSearch(controlId)
{        
    $j("#" + controlId).html($j("#tmpLoadingBar").html());
}
function getControlPrefix(arrayAreas)
{
    var controlPrefix = "";

    var areas = searchAreas;

    if (arrayAreas != null) areas = arrayAreas;    

     for (i=0; i<areas.length; i++)
    {	    	     
        searchArea = areas[i];
        
        if (searchArea.mySelected)
        {	
            controlPrefix = searchArea.myControlPrefix            	        	                    
            break;
        }
    }
    
    return controlPrefix;
}



function updateDOM(inputField) { 

    if (typeof inputField == "string")
    {
        inputField = document.getElementById(inputField);    
    }
    
    if (inputField.type == "select-one")
    {
        for (var i=0; i<inputField.options.length; i++)
        {
            if (i == inputField.selectedIndex)
            {
                inputField.options[inputField.selectedIndex].setAttribute("selected","selected");
            }
        }        
    } else if (inputField.type == "text") {
        inputField.setAttribute("value",inputField.value);
    } else if (inputField.type == "textarea") {
        inputField.setAttribute("value",inputField.value);    
    } else if ((inputField.type == "checkbox") || (inputField.type == "radio")) {
        if (inputField.checked) {
            inputField.setAttribute("checked","checked");        
        } else {            
            inputField.removeAttribute("checked"); 
        }    
    }

}

//PLANOS
function Toggle(node) {

    var ss = node;


    //var n = Utils.getNextSiblingByTag(node, "DIV");
    var n = $j(node).parent().find("div:first");
    var img = $j(node).parent().find("img:first");

    if ($j(n).css("display") != "none") {
        $j(n).css("display", "none");

        //var img = $j(node).parent().find("img:first");

        img.attr("src", "images/page/node_openen.gif");

//        // Change the image (if there is an image)
//        if (node.childNodes.length > 0) {
//            if (node.childNodes.item(0).nodeName == "IMG") {
//                node.childNodes.item(0).src = "images/page/plus.gif";
//            }
//        }
    } else {
        $j(n).css("display", "block");        

        img.attr("src", "images/page/node_closed.gif");        
        

//        // Change the image (if there is an image)
//        if (node.childNodes.length > 0) {
//            if (node.childNodes.item(0).nodeName == "IMG") {
//                node.childNodes.item(0).src = "images/page/minus.gif";
//            }
//        }
    }

    try {
        event.returnValue = false;
        event.cancelBubble = true;
    }
    catch (ex) {}

    return false;
}
