AttachEventHandler( window, 'onload', InitializeDropdownChecklists );

document.onclick = DocumentClickHandler;



document.getElementsByClassName = function( clsName )
{
    var retVal = new Array();
    var elements = document.getElementsByTagName( "*" );
    for( var i = 0; i < elements.length; i++ )
    {
        if( elements[ i ].className.indexOf( " " ) >= 0 )
        {
            var classes = elements[ i ].className.split( " " );
            for( var j = 0; j < classes.length; j++ )
            {
                if ( classes[ j ] == clsName )
                    retVal.push( elements[ i ] );
            }
        }
        else if( elements[ i ].className == clsName )
            retVal.push( elements[ i ] );
    }
    return retVal;
}

function DocumentClickHandler( e )
{
   // Check if a list is active
   if ( eActiveDropDownChecklist == null )
      return;

   // Get event
   if ( e == null )
      var e = event;

   // Get target element
   var eTargetElement = e.target;
   if ( eTargetElement == null )
      eTargetElement = e.srcElement;

   var eTargetElementParent = eTargetElement;

   // Check if target element is within active dropdownchecklist
   while ( eTargetElementParent != null )
   {
      // Element
      if ( eTargetElementParent == eActiveDropDownChecklist )
         return;
      
      eTargetElementParent = eTargetElementParent.parentNode;
   }

   // Hide list
   HideActiveDropDownChecklist();
}



/* Search box functions */

function FocusInputField( eInput, sLabel )
{
   if ( eInput.value == sLabel ) 
   {
      eInput.value = '';
      eInput.style.color = '#3c4549';
   }
}

function BlurInputField( eInput, sLabel )
{
   if ( eInput.value == '' )
   {
      eInput.value = sLabel;
      eInput.style.color = '';
   }
}

function ValidateKeyword( keywordElementId, dummyValue )
{
   var keywordElement = document.getElementById( keywordElementId )

   if ( keywordElement )
   {
      if (keywordElement.value == '' || keywordElement.value == dummyValue)
      {
         alert('Geef een trefwoord op');
         return false;
      }
   }
}



/* Toggle element visibility */

function toggleVisibilty( e )
{
   var elem = document.getElementById( e );
   if ( elem.style.display == 'none' )
   {
      elem.style.display = 'block';
      elem.style.height = 'auto';
      if ( e == 'ExtendedSearch' )
         toggleExtendedSearchCheckbox( 'checked' );
   }
   else
   {
      elem.style.display = 'none';
      elem.style.height = '0px';
      if ( e == 'ExtendedSearch' )
         toggleExtendedSearchCheckbox( '' );
   }
}

function toggleExtendedSearchCheckbox(c)
{
   var elemExtendedSearchLink = document.getElementById( 'ExtendedSearchLink' );
   elemExtendedSearchLink.style.backgroundImage = 'url( Images/Checkbox' + ( c == 'checked' ? '.Checked' : '' ) + '.png )';
}