﻿var mapAreas = $$('map#search_region_map_Map area');
mapAreas.each(function(s){
    s.observe('click', areaClickHandler);
});

var keywordSearchLink = $('keywordSearchLink');
keywordSearchLink.href = 'javascript:void(0);';
keywordSearchLink.observe('click', function(a){
    keywordTextBox.focus();
});

var bars = $$('div.bar > a');
bars.each(function(s){
    s.observe('click', barClickHandler);
    
    //collapse bars by default
    toggleBar(s);
});

var clickBars = $('clickBars');

expanded_bars.each(function(s){
    //expand bars that contain information
    var element = $(s);
    element.select('a:first-child').each(function(a){
        toggleBar(a);
    });
    ensureClickBars();
});

function ensureClickBars()
{
    var bool = false;
    
    bars.each(function(s){
        var contents = s.up().next();
        bool = bool || contents.visible();
    });
    
    if(bool)
        clickBars.hide();
    else
        clickBars.show();
}

function barClickHandler(event)
{
    var element = event.element();
    toggleBar(element);
    ensureClickBars();
}

function toggleBar(element)
{
    var contents = element.up().next();
    if(contents.visible())
        contents.hide();
    else
        contents.show();
    element.toggleClassName('collapsed');
}

function areaClickHandler(event)
{
    var element = Event.element(event);
    var regionIndex = mapAreas.indexOf(element);
    
    var oldSelectedWDARegion = wdaRegionHiddenField.value;
    
    //set the selected wdaregion
    wdaRegionHiddenField.value = regionIndex + 1;
    
    if(selectedRegion.innerHTML != '' && oldSelectedWDARegion == wdaRegionHiddenField.value)
        deselectRegionByMapArea(element);
    else
        selectRegionByMapArea(element);
}

function selectRegionByMapArea(mapArea)
{
    //set the verbiage below the map to indicate the selected region and counties
    selectedRegion.update('<strong>Region selected:</strong><br/>' + mapArea.title);
}

function deselectRegionByMapArea(mapArea)
{
    wdaRegionHiddenField.value = 0;

    selectedRegion.update('');
}

setupMap();

function setupMap()
{
    try
    {
        var regionIndex = parseInt(wdaRegionHiddenField.value) - 1;
        if(regionIndex >= 0)
        {
            var mapArea = mapAreas[regionIndex];
            if(mapArea)
                selectRegionByMapArea(mapArea);
        }
    }
    catch (ex)
    {
    }
}
