﻿// JScript File

/*----------------------------------------------------------------------
--  Town Methods
----------------------------------------------------------------------*/
//
// Hides the Townlist from view, setting the links depending on 
// towns selected
//
function HideTownList(DoNotUseEffects)
{
    //Set link
    //alert($(townListContainerName).getElementsByTagName('input').length);
    
    selectedTownCount = GetTownSelectedItemsCount();

    switch (selectedTownCount){
        case 0:
            SetTownShowHideLinkToDefaultState();
            break;
        case 1:
            $('townShowHidePlaceholder').innerHTML = selectedTownCount + 
                ' area selected (<a href=\"#\" title=\"Show selected areas\" onclick=\"ShowTownList();\">show areas</a>' +
                ' | <a href=\"#\" title=\"clear selected areas\" onclick=\"ClearTownList()\">clear selection</a>)';
            break;
        default : 
            $('townShowHidePlaceholder').innerHTML = selectedTownCount + 
                ' areas selected (<a href=\"#\" title=\"Show selected areas\" onclick=\"ShowTownList()\">show areas</a>' +
                ' | <a href=\"#\" title=\"clear selected areas\" onclick=\"ClearTownList()\">clear selection</a>)';
        }

    //Hide Town List    
    if (DoNotUseEffects)
        Element.hide(townListContainerName);
    else
        HideElement(townListContainerName);
    
}

//
// Resets the show/hide link to default appearance
//
function SetTownShowHideLinkToDefaultState()
{
    $('townShowHidePlaceholder').innerHTML = 
        '-- (optional) -- (<a href=\"#\" title=\"Show area options\" onclick=\"ShowTownList()\">show areas</a>)';
}

//
// Returns the number of selected towns 
//
function GetTownSelectedItemsCount()
{
    var selectedItemCount = 0;
    var childCheckboxes = $(townListContainerName).getElementsByTagName('input');
    
    for (var itemCheckbox in childCheckboxes)
    {
        if (childCheckboxes[itemCheckbox].checked)
        {
            selectedItemCount++;
        }
    }
    
    return selectedItemCount;
}

//
// Displays the town list
//
function ShowTownList()
{
    //Set link
    $('townShowHidePlaceholder').innerHTML = '<a href=\"#\" title=\"Hide area options\" onclick=\"HideTownList()\">hide areas</a>';
    
    ShowElement(townListContainerName);
}

//
// Clears the selected towns
//
function ClearTownList()
{
    var childCheckboxes = $(townListContainerName).getElementsByTagName('input');
    
    for (var itemCheckbox in childCheckboxes)
    {
        childCheckboxes[itemCheckbox].checked = false;
    }
    
    //Reset link
    SetTownShowHideLinkToDefaultState();    
}


/*----------------------------------------------------------------------
--  PropertyType Methods
----------------------------------------------------------------------*/
//
// Hides the PropertyTypeList from view, setting the links depending on 
// towns selected
//
function HidePropertyTypeList(DoNotUseEffects)
{
    //Set link
    
    selectedPropertyTypeCount = GetPropertyTypeSelectedItemsCount();

    switch (selectedPropertyTypeCount){
        case 0:
            SetPropertyTypeShowHideLinkToDefaultState();
            break;
        case 1:
            $('propertyTypeShowHidePlaceholder').innerHTML = selectedPropertyTypeCount + 
                ' type selected (<a href=\"#\" title=\"Show selected types\" onclick=\"ShowPropertyTypeList();\">show types</a>' +
                ' | <a href=\"#\" title=\"clear selected types\" onclick=\"ClearPropertyTypeList()\">clear selection</a>)';
            break;
        default : 
            $('propertyTypeShowHidePlaceholder').innerHTML = selectedPropertyTypeCount + 
                ' type selected (<a href=\"#\" title=\"Show selected areas\" onclick=\"ShowPropertyTypeList()\">show types</a>' +
                ' | <a href=\"#\" title=\"clear selected types\" onclick=\"ClearPropertyTypeList()\">clear selection</a>)';
        }

    //Hide Town List    
    if (DoNotUseEffects)
        Element.hide(propertyTypeListContainerName);
    else
        HideElement(propertyTypeListContainerName);
    
}

//
// Resets the show/hide link to default appearance
//
function SetPropertyTypeShowHideLinkToDefaultState()
{
    $('propertyTypeShowHidePlaceholder').innerHTML = 
        '-- (optional) -- (<a href=\"#\" title=\"Show type options\" onclick=\"ShowPropertyTypeList()\">show types</a>)';
}

//
// Returns the number of selected property types 
//
function GetPropertyTypeSelectedItemsCount()
{
    var selectedItemCount = 0;
    var childCheckboxes = $(propertyTypeListContainerName).getElementsByTagName('input');
    
    for (var itemCheckbox in childCheckboxes)
    {
        if (childCheckboxes[itemCheckbox].checked)
        {
            selectedItemCount++;
        }
    }
    
    return selectedItemCount;
}

//
// Displays the PropertyType list
//
function ShowPropertyTypeList()
{
    //Set link
    $('propertyTypeShowHidePlaceholder').innerHTML = '<a href=\"#\" title=\"Hide types options\" onclick=\"HidePropertyTypeList()\">hide types</a>';
    
    ShowElement(propertyTypeListContainerName);
}

//
// Clears the selected PropertyTypes
//
function ClearPropertyTypeList()
{
    var childCheckboxes = $(propertyTypeListContainerName).getElementsByTagName('input');
    
    for (var itemCheckbox in childCheckboxes)
    {
        childCheckboxes[itemCheckbox].checked = false;
    }
    
    //Reset link
    SetPropertyTypeShowHideLinkToDefaultState();    
}
