var currentComponent = 0;
var displayedComponent = 0;
var componentBalloonID = 0;

function componentMouseCheck() {
    if(!balloonShown || componentBalloonID != balloonID) {displayedComponent = 0}
    if(new Date().getTime() - mouseLocationLastUpdate > 500) {
        if(currentComponent != 0) {
            if(displayedComponent != currentComponent) {
                componentBalloonID = componentBalloonID = showBalloon(
                    document.getElementById('componentBalloon'+currentComponent).innerHTML,
                    document.getElementById('componentImg'+currentComponent),
                    40,-50,240
                );
                displayedComponent = currentComponent;
            }
        }
        else {
            if(displayedComponent != 0 && !mouseOverBalloon) {
                hideBalloon();
                displayedComponent = 0;
                componentBalloonID = 0;
            }
        }
    }
    setTimeout("componentMouseCheck()",50)
}

var filterValueList = new Array();
var filterValueListIncrement = 0;
var currentFilter = '';
var shownFilter = '';

function applyFilterChanges() {
    document.getElementById('filterform').submit();
}
function addFilter(name, val) {
    document.getElementById('filter-' + name).value=val;
    applyFilterChanges();
}
function removeFilter(name) {
    document.getElementById('filter-' + name).value='';
    applyFilterChanges();
}
function writeFilterDropdown(displayName, hiddenName, selectedValue, values) {
    var retVal =
    '<td style="width: 5px"><br /></td>\n' +
    '<td class="filterAddDropdown-link"' +
    '    onmouseover="currentFilter = \'' + hiddenName + '\'"' +
    '    onmouseout="if(currentFilter == \'' + hiddenName + '\') {currentFilter = \'\'}"' +
    '    id="filterAddDropdown_link_' + hiddenName + '">\n' +
    '   <div class="filterAddDropdown-text">\n' +
    '       '+displayName+' &#9660;<br />\n' +
    '   </div>' +
    '   <div class="filterAddDropdown-selected">\n' +
    '       '+(selectedValue == '' ? 'Any' : selectedValue)+'<br />\n' +
    '   </div>' +
    '   <div class="filterAddDropdown-list"' +
    '        onmouseover="currentFilter = \'' + hiddenName + '\'"' +
    '        onmouseout="if(currentFilter == \'' + hiddenName + '\') {currentFilter = \'\'}"' +
    '        id="filterAddDropdown_list_' + hiddenName + '">\n' +
    '       <div class="filterAddDropdown-text">\n' +
    '           '+displayName+' &#9660;<br />\n' +
    '       </div>' +
    '       <div class="filterAddDropdown-scrolling">\n';
    if(selectedValue == '')
        retVal += '<div class="filterAddDropdown-selected">\n';
    else
        retVal += '<div class="filterAddDropdown-link" onclick="removeFilter(\''+hiddenName+'\');">\n';
    retVal += 'Any<br /></div>'
    for(x in values) {
        if(values[x] == selectedValue)
            retVal += '<div class="filterAddDropdown-selected">\n';
        else
            retVal += '<div class="filterAddDropdown-link" onclick="addFilter(\''+hiddenName+'\',filterValueList['+filterValueListIncrement+']);">\n';
        retVal +=
        '       '+values[x]+'<br />\n';
        retVal += '</div>\n';
        filterValueList[filterValueListIncrement++] = values[x];
    }
    retVal +=
    '       </div>' +
    '   </div>' +
    '</td>';
    
    return retVal;
}
function filterMouseCheck() {
    if(new Date().getTime() - mouseLocationLastUpdate > 400 && currentFilter != shownFilter) {
        if(currentFilter == '') {
            document.getElementById('filterAddDropdown_list_' + shownFilter).style.display='none';
            shownFilter = '';
        }
        else {
            if(shownFilter != '')
                document.getElementById('filterAddDropdown_list_' + shownFilter).style.display='none';
            var elem = document.getElementById('filterAddDropdown_list_' + currentFilter);
            var link = document.getElementById('filterAddDropdown_link_' + currentFilter);
            elem.style.top = getTop(link) + 'px';
            elem.style.left = getLeft(link) + 'px';
            elem.style.display='block';
            shownFilter = currentFilter;
        }
    }
    setTimeout("filterMouseCheck()",50)
}

function checkResultHeaderKeyword() {
    if(document.getElementById('resultHead_keyword').value.length < 1)
        alert('Please enter a keyword to make your search');
    else if(!document.getElementById('resultHead_keyword').value.match(/[a-zA-Z0-9]/))
        alert('The keyword must contain at least one letter or number');
    else
        return true;
    return false;
}
