﻿var findAddressPane;
var findParcelPane;
var findCemeteryPlotPane;

function processFindCallbackResult(s)
{
    ESRI.ADF.System.processCallbackResult(s);
    Ext.get('FindAddressContainer').unmask();
    Ext.get('FindParcelContainer').unmask();
    var map = $find('Map1');
    map.refresh();
}

function onFindClicked(type, value1, value2)
{
    var theButtons;
    if (type == 'par')
    {
        ParcelsResultsGrid.Init();
        
        if (!findParcelPane)
        {
        
            if (limitAccess)
            {
                theButtons = [{
                    text: 'Zoom to Selected',
                    handler: onFindParcelZoomSelected //implemented in ParcelsResultsGrid.asc
                    },
                    {
                    text: 'Clear Results',
                    handler: onFindParcelClearResults //implemented in ParcelsResultsGrid.asc
                    }];
            }
            else
            {
                theButtons = [{
                    text: 'Zoom to Selected',
                    handler: onFindParcelZoomSelected //implemented in ParcelsResultsGrid.asc
                    },
                    {
                    text: 'Clear Results',
                    handler: onFindParcelClearResults //implemented in ParcelsResultsGrid.asc
                    },
                    {
                    text: 'Buffer Selected Results',
                    handler: ParcelsResultsGrid.ShowBufferWindow
                    }];
            }
    
            findParcelPane = new Ext.Window({
                id:'findParcelPane',
                layout:'fit',
                width:600,
                height:370,
                closeAction:'hide',
                plain: true,
                contentEl: 'FindParcelContainer', 
                title: 'Parcels',
                minimizable: true,
                resizable: false,
                buttons: theButtons
            });
            findParcelPane.on('hide', function(){
                                    ParcelsResultsGrid.ClearGrid();
                                },
                                this,
                                {
                                    single:false
                                }
                            );
            findParcelPane.on('minimize', MinimizeWindow, findParcelPane);
            findParcelPane.show();
        }
        else
        {
            findParcelPane.show();
        }
        
        Ext.get('FindParcelContainer').mask("Loading...", "x-mask-loading");
    }
    else if (type == 'cem')
    {        
        FCMapsResults_CemeteryTaskResults.Init();
        if (!findCemeteryPlotPane)
        {
        
            if (limitAccess)
                {
                    theButtons = [{
                        text: 'Zoom to Selected',
                        handler: FCMapsResults_CemeteryTaskResults.ZoomSelected
                        },
                        {
                        text: 'Clear Results',
                        handler: FCMapsResults_CemeteryTaskResults.ClearResults
                        },
                        {
                        text: 'Print',
                        handler: FCMapsResults_CemeteryTaskResults.StartPrint
                        }
                        ];
                }
                else
                {
                    theButtons = [{
                        text: 'Zoom to Selected',
                        handler: FCMapsResults_CemeteryTaskResults.ZoomSelected
                        },
                        {
                        text: 'Clear Results',
                        handler: FCMapsResults_CemeteryTaskResults.ClearResults
                        },
                        {
                        text: 'Buffer Selected Results',
                        handler: FCMapsResults_CemeteryTaskResults.ShowBufferWindow
                        },
                        {
                        text: 'Export to CSV',
                        handler: FCMapsResults_CemeteryTaskResults.StartExcelExport
                        },
                        {
                        text: 'Print',
                        handler: FCMapsResults_CemeteryTaskResults.StartPrint
                        }
                        ];
                }
    
            findCemeteryPlotPane = new Ext.Window({
                id:'findCemeteryPane',
                layout:'fit',
                width:600,
                height:370,
                closeAction:'hide',
                plain: true,
                contentEl: 'FindCemeteryContainer', 
                title: 'Cemetery Plots',
                minimizable: true,
                resizable: false,
                buttons: theButtons
            });
            findCemeteryPlotPane.on('hide', function(){
                                    FCMapsResults_CemeteryTaskResults.ClearResults();
                                },
                                this,
                                {
                                    single:false
                                }
                            );
            findCemeteryPlotPane.on('minimize', MinimizeWindow, findCemeteryPlotPane);
            findCemeteryPlotPane.show();
        }
        else
        {
            findCemeteryPlotPane.show();
        }
        
        Ext.get('FindCemeteryContainer').mask("Loading...", "x-mask-loading");
    }
    else
    {    
        AddressResultsGrid.Init();
        if (!findAddressPane)
        {
            if (limitAccess)
            {
                theButtons = [{
                    text: 'Zoom to Selected',
                    handler: onFindAddressZoomSelected //implemented in AddressResultsGrid.asc
                    },
                    {
                    text: 'Clear Results',
                    handler: onFindAddressClearResults //implemented in AddressResultsGrid.asc
                    }];
            }
            else
            {
                theButtons = [{
                    text: 'Zoom to Selected',
                    handler: onFindAddressZoomSelected //implemented in AddressResultsGrid.asc
                    },
                    {
                    text: 'Clear Results',
                    handler: onFindAddressClearResults //implemented in AddressResultsGrid.asc
                    },
                    {
                    text: 'Buffer Selected Results',
                    handler: AddressResultsGrid.ShowBufferWindow
                    }];
            }
            
            findAddressPane = new Ext.Window({
                id:'findAddressPane',
                layout:'fit',
                width:417,
                height:370,
                closeAction:'hide',
                plain: true,
                contentEl: 'FindAddressContainer',
                title: 'Addresses and Intersections',
                minimizable: true,
                resizable: false,
                buttons: theButtons
            });
            findAddressPane.on('hide', function(){
                                    AddressResultsGrid.ClearGrid();
                                },
                                this,
                                {
                                    single:false
                                }
                            );
            findAddressPane.on('minimize', MinimizeWindow, findAddressPane);
            findAddressPane.show();
        }
        else
        {
            findAddressPane.show();
        }
        Ext.get('FindAddressContainer').mask("Loading...", "x-mask-loading");
    }   
    
    var message = 'ControlID=Map1&ControlType=Map&EventArg=';
    var context ='Map1';
     
    switch (type)
    {
        case 'add':
            message = message + 'FindAddress~' + value1;
            break;
        case 'int':
            message = message + 'FindIntersection~' + value1 + '|' + value2;
            break
        case 'par':
            message = message + 'FindParcel~' + value1;
            break;
        case 'cem':
            message = message + 'FindCemetery~' + value1;
            break;
    }
    eval("WebForm_DoCallback('__Page',message,processFindCallbackResult,context,null,true)");
}

function onFindTypeChanged()
{
    var addressText = Ext.getCmp('findTextAddressParcel');
    var street1Text = Ext.getCmp('findTextStreet1');
    var street2Text = Ext.getCmp('findTextStreet2');
    
    switch (Ext.get('ddlFindType').dom.value)
    {
        case 'Address':
            addressText.setValue('i.e. 1515 Main St #12');
            addressText.show();
            street1Text.hide();
            street2Text.hide();
            break;
        case 'Intersection':            
            addressText.hide(); 
            street1Text.setValue('Street 1');
            street2Text.setValue('Street 2');
            street1Text.show();
            street2Text.show();       
            break;
        case 'Parcel':
            addressText.setValue('Enter parcel number...');
            addressText.show();
            street1Text.hide();
            street2Text.hide();
            break;   
        case 'Cemetery Plot (Last Name)':
            addressText.setValue('Enter a last name...');
            addressText.show();
            street1Text.hide();
            street2Text.hide();
            break;         
    }
}