var activeMenu = null;
window.onscroll = handleScroll;
window.onresize = handleResize;

// -----------------------------------------------------
// -----------------------------------------------------

function handleScroll() {
	var membersMenu = document.getElementById( 'menu.members' );
	
	if( membersMenu ) {
		membersMenu.style.position = 'absolute';
		membersMenu.style.left = (document.body.clientWidth + document.body.scrollLeft) - 235;		
	}
	
	resizeMask();
}

// -----------------------------------------------------

function handleResize() {
	var membersMenu = document.getElementById( 'menu.members' );
	
	if( membersMenu ) {
		document.body.scrollLeft = 0;
		
		membersMenu.style.position = 'absolute';
		membersMenu.style.left = (document.body.clientWidth + document.body.scrollLeft) - 235;		
	}
	
	resizeMask();
}

// -----------------------------------------------------

function resizeMask() {
	var mask = document.getElementById( 'popup_mask' );
	
	if( mask && (mask.style.visibility == 'visible') ) {
		mask.style.width = document.body.scrollWidth;
		mask.style.height = document.body.scrollHeight;
	}	
}

// -----------------------------------------------------

function captureMouse( install ) {
	if( install ) {
		if( !window ) {
			document.captureEvents( Event.MOUSEMOVE );
		}

		document.onmousemove = handleMenu;
	}
	else {
		if( !window ) {
			document.releaseEvents( Event.MOUSEMOVE );
		}

		document.onmousemove = null;
	}
}

// -----------------------------------------------------

function displayElement( identifier, hide, parent ) {
	//var debug = document.getElementById( 'debug' );
	var element = document.getElementById( identifier );
	var image = document.getElementById( identifier + ".image" );
	var link = document.getElementById( identifier + ".link" );	
	var action = hide ? 'none': 'inline';
	var offsetCorrection = 0;

	if( element ) {
		if( !hide ) {		
			var elm = parent;

			//debug.innerHTML = elm.id;
						
			if( elm.name != parent.id + ".item" ) {
				while( elm ) {
					if( elm.childNodes ) {
						//debug.innerHTML = 'childNodes';
					
						elm = elm.childNodes[1];
						
						if( elm ) {						
							//debug.innerHTML = elm.id;

							if( elm.lang == parent.id + ".item" ) {								
								offsetCorrection = -8;
								break;
							}
						}
						//else
						//	debug.innerHTML = 'no child nodes!';						
					}
                                        else if( elm.children ) {
						//debug.innerHTML = 'children';
						
						elm = elm.children[0];
						
						if( elm ) {						
							//debug.innerHTML = elm.name;

							if( elm.id == parent.id + ".item" ) {
								break;
							}
						}						
						//else
						//	debug.innerHTML = 'no children!';
					}
				} 
			}

			if( elm ) {
				element.style.top = elm.offsetTop + (elm.clientHeight/2) + offsetCorrection + 'px';
			}
		}

		element.style.display = action;

		if( identifier.search( /^active[.]/ ) == -1 ) {		
			if( image != null ) {
				image.style.backgroundImage = "url( images/arrow_on.png)";
			}

			if( link != null ) {
				link.style.color = "#F39537";
				link.style.fontWeight = "bold";
			}		
		}			
	}

	if( hide ) {
		activeMenu = null;

		captureMouse( false );

		if( identifier.search( /^active[.]/ ) == -1 ) {
			if( image != null ) {
				image.style.backgroundImage = "url( images/arrow_off.png)";
			}

			if( link != null ) {
				link.style.color = "#FFFFFF";
				link.style.fontWeight = "normal";
			}
		}					
	}
}

// -----------------------------------------------------

function isChild( element, name ) {
	var src = element;
	var findName = name + '.popup';
	var findParentName = name;
	var i=0;

	if(( src.id == findName ) || ( src.id == findParentName ))  {
		return true;
	}

	do {
		src = src.parentElement || src.parentNode;

		if( src ) {
			if(( src.id == findName ) || ( src.id == findParentName )) {
				return true;
				break;
			}
		}
	}
	while( src && (src.tagName != 'html') );

	return false;
}

// -----------------------------------------------------

function handleMenu( evnt ) {
	if( !evnt ) {
		evnt = window.event;
	}

	var element = evnt.srcElement || evnt.target;

	if( activeMenu == null || activeMenu === '' ) {
		activeMenu = element.id;
	}

	displayElement( activeMenu + '.popup', !isChild( element, activeMenu ), element );
}

// -----------------------------------------------------

function showPopup( aName, aShouldShow ) {
	var element = document.getElementById( aName  ); 
	var mask = document.getElementById( 'popup_mask' ); 

	if( mask ) {
		mask.style.width = document.body.clientWidth;
		mask.style.height = document.body.clientHeight;
		mask.style.visibility = 'visible';
	}
	
	if( element ) {		
		element.style.height = 'auto';
		
		if(( aShouldShow == null ) || (aShouldShow == true) ) {
			element.style.visibility = 'visible';
		}
	}		
}

// -----------------------------------------------------

function hidePopup( aName ) {
	var element = document.getElementById( aName  ); 
	var mask = document.getElementById( 'popup_mask' ); 

	if( mask ) {
		mask.style.width = '1px';
		mask.style.height = '1px';
		mask.style.visibility = 'hidden';
	}

	if( element ) {
		element.style.visibility = 'hidden';
		element.style.height = '1px';
	}		
}

// -----------------------------------------------------

function centerPopup( aTriggerElement, aShouldAjustSize, aName ) {
	var element = document.getElementById( aName || 'main_photo_popup' );
	
	if( element ) { 		
		if( aTriggerElement.clientWidth > 640 ) {
			aTriggerElement.style.width = '640px';			
		}
		else if( aTriggerElement.clientHeight > 640 ) {
			aTriggerElement.style.height = '640px';			
		}

		if( aShouldAjustSize ) {
			element.style.width = aTriggerElement.clientWidth+25;
		}			
		
		element.style.left = (document.body.clientWidth - element.clientWidth) / 2;
		element.style.top = (document.body.clientHeight - element.clientHeight) / 2;
		element.style.visibility = 'visible';		
	}	
}

// -----------------------------------------------------

function switchEditorContext( aSelector, prefix ) {
	var elementNL = document.getElementById( prefix+'editor_nl' ); 
	var elementEN = document.getElementById( prefix+'editor_en' ); 
	
	try{ 	
		if( elementNL && elementEN ) { 
			var selectedElement = aSelector.options[aSelector.selectedIndex].value;

			elementNL.style.display = (selectedElement == 'nl') ? '' : 'none'; 
			elementEN.style.display = (selectedElement == 'en') ? '' : 'none';
		}
	} 
	catch(e){}
}	

// -----------------------------------------------------

function showNewLink() {	
	var indexElement = document.getElementById( 'link_index' );
	var index = indexElement.value;	
	var linkRow = document.getElementById( 'addLinkRow' );
	var linkBody = document.getElementById( 'link_' + index  );

	if( linkBody ) {
		linkBody.style.display = '';
	}		
	
	if( (index == 3) && linkRow ) {
		linkRow.style.visibility = 'hidden';
	}
	
	index++;
	indexElement.value = index;
}

// -----------------------------------------------------

function removeNewsImage() {
	var element = document.getElementById( 'newsImageId' );
	var tableBody = document.getElementById( 'remove_image_body' );
	
	if( element ) {
		element.value = -1;
		
		if( tableBody ) {
			tableBody.style.display = 'none';
		}
	}		
}

// -----------------------------------------------------

function removeExternalLinkImage() {
	var element = document.getElementById( 'linkImageId' );
	var tableBody = document.getElementById( 'remove_image_body' );
	
	if( element ) {
		element.value = -1;
		
		if( tableBody ) {
			tableBody.style.display = 'none';
		}
	}		
}

// -----------------------------------------------------

function switchTabSheet( clickedTab, isUserTab )
{
	for( var i = 0; i < 4; i++ )
	{
		var tab = document.getElementById( 'tab'+i );

		if( tab.id == clickedTab.id )
		{
			clickedTab.className = 'active_tab';

			if( isUserTab == true )
			{
				makeUserName();
			}
			
			var content = document.getElementById( 'body'+i );			
			content.style.display = '';
		}
		else
		{
			var content = document.getElementById( 'body'+i );
			content.style.display = 'none';

			if( tab.className != 'hidden_tab' ) 
			{
				tab.className = 'inactive_tab';
			}
		}
	}
}

// -----------------------------------------------------

function makeUserName() 
{
	var userName = document.getElementById('userName');
	
	if( userName && (userName.value == ""))
	{
		//var format = /([a-zA-Z])[a-zA-Z]*[\s-]?/g;
	
		var el1 = document.getElementById('firstName').value;
		//el1 = el1.replace( format, '' );
		el1 = el1.charAt(0).toLowerCase();
	
		var format = /\W/g;
	
		var el2 = document.getElementById('insertion').value;
		el2 = el2.replace( format, '');
		el2 = el2.toLowerCase();
	
		var el3 = document.getElementById('lastName').value;
		el3 = el3.replace( format, '');
		el3 = el3.toLowerCase();
	
		userName.value = el1 + el2 + el3;
	}
}
// -----------------------------------------------------

function changedComboState( checkbox, index )
{
	var combo = document.getElementById( 'email'+index );

	combo.disabled = !checkbox.checked;

	if( combo.isDisabled == true )
	{
		combo.selectedIndex = 0;
		combo.style.backgroundColor = '#FAFAD2';
	}
	else
		combo.style.backgroundColor = '#FFFFFF';
}

  var currentImage = 0;
  var timer;
  
  //------------------------------------------------------------------------------

  function cycleBanner() {
      timer = setInterval( 'showBanner()', 10000 );
  }

  //------------------------------------------------------------------------------

  function showBanner( aBanners ) {
      var element = document.getElementById( 'homepage_image' );
  
      if( element ) {
          currentImage++;
  
          if (currentImage == 10) {
              currentImage = 0;
          }

          try {
          	element.filters[0].Apply();
          	element.filters[0].Play();
          }
          catch(e) {}
  
          element.src = './images/home/photo_0' + currentImage + '.jpg';          
      }
      else
     	  clearTimeout( timer );      
  }

  //------------------------------------------------------------------------------
  
  function confirmDestructiveAction( aMessage  ) {
      return confirm( aMessage );
  }
  
