﻿var HDMenus = 0;

function HDMenu( domTarget ){
	var tmp;
	if( arguments.length < 2 ){
		return;
	}

	if( typeof domTarget == 'string' ){
		domTarget = document.getElementById( domTarget );
	}

	if( domTarget == undefined ){
		return;
	}

	if( domTarget.id == undefined ){
		domTarget.id = 'HDMenu_' + HDMenus;
	}

	this.reactors = [];

	for( var idx = 1; idx < arguments.length; idx++ ){
		if( typeof arguments[idx] == 'string' ){
            tmp = document.getElementById( arguments[idx] );
            
            if( tmp != undefined ){
	            this.reactors[ this.reactors.length ] = tmp;
            }
		}
	}

	if( this.reactors.length < 1 ){
		return;
	}

	domTarget.HDMenu = this;
	domTarget.onmouseover = function(){ domTarget.HDMenu.Toggle( true ) };
	domTarget.onmouseout  = function(){ domTarget.HDMenu.Timer() };

	for( var idx in this.reactors ){
		this.reactors[ idx ].onmouseover = function(){ domTarget.HDMenu.TimerClear() };
		this.reactors[ idx ].onmouseout  = function(){ domTarget.HDMenu.Timer() };
	}

	HDMenus++;

	this.timeout = null;

	this.Timer = function(){
		this.TimerClear();
		this.timeout = setTimeout( "document.getElementById( '"+ domTarget.id +"' ).HDMenu.Toggle( false );", 10 );
	}
	
	this.TimerClear = function(){
		if( this.timeout ){
			clearTimeout( this.timeout );
		}
	}

	this.Toggle = function( visible ){
		if( visible ){
			this.TimerClear();
		}

		for( var idx in this.reactors ){
			this.reactors[ idx ].style.display = visible ? 'block' : 'none';
		}
	}
}