<!--
/*
//######################
//# Description: Manager object for handling events
//# Dated        11/05/2008 - 11/10/2008
//# Author       (c) Philip Jahmani Chauvet 
//# Notice:      Free to use, download, publish, but keep my name on this code.
//######################
*/

function EventManager()
{
	this.imagessize = null;
	this.eventhashtable = null;
	
	this.initEventConfig=initEventConfig;		
	this.getImagesWidthHeight=getImagesWidthHeight;
	this.setImagesWidthHeight=setImagesWidthHeight;
	this.dspAllEvents=dspAllEvents;
	this.addEvent=addEvent;
	this.getEvent=getEvent;
    this.getEventEntries=getEventEntries;
	this.removeEvents=removeEvents;
	this.getImageBoardforEvent=getImageBoardforEvent;
	this.getImageBoardforEventVertical=getImageBoardforEventVertical;
	this.getEvenManagerKeys=getEvenManagerKeys;
	this.getEvenManagerValues=getEvenManagerValues;
	this.getDefaultImageBoardforEvent=getDefaultImageBoardforEvent;	
	
	this.initEventConfig();		
}
function initEventConfig()
{
	this.eventhashtable = new HashTable();
	this.setImagesWidthHeight( "width=50px height=50px" )
}
function setImagesWidthHeight( imgsizes )
{
	this.imagessize = imgsizes;	
}
function getImagesWidthHeight()
{
	return this.imagessize;	
}
function dspAllEvents()
{
    var evnt = "";
    var keys = this.eventhashtable.getHashKeys();
    if ( keys != null )
    {
        for( var w=0; w<keys.length; w++)
        {            
            var entriesv = this.getEventEntries( keys[ w ] );
		    if ( entriesv != null )
		    {
	            for ( var j=0; j < entriesv.size(); j++ )
	            {
	                evnt += entriesv.get( j ); 
	            }                        
	            evnt += "================================\n";           
		    }
        } 
    }
	
	return evnt;	
}
function addEvent( key, event )
{
	if ( key == null )
		return;

        //Get the list of events from the hashtable
	var eventvector = this.eventhashtable.getHashValue( key );
	if ( eventvector == null )
	   eventvector = new Vector();
    else
        this.eventhashtable.removeHash( key )	   

        //Add new entries to the hashtable
    eventvector.add( event );
    
	this.eventhashtable.setHash( key, eventvector );
}
function removeEvents( key )
{
    this.eventhashtable.removeHash( key );		
}
function getImageBoardforEvent( key )
{
	var msg = null;
	var entriesv = this.getEventEntries( key );
	if ( entriesv != null )
	{
        msg = "<nobr>\n";
		for ( var j=0; j < entriesv.size(); j++ )
		{
		    var tmpevent = entriesv.get( j );
	        msg += '<a href="javascript:getImage(\'' + j + '\')"><img ' + 
		           this.getImagesWidthHeight() +
	               ' src="' + tmpevent.getSrc() + '"></a> ';	             
		}                           
		msg += "\n</nobr>";
    }
    	
	return msg;
}
function getImageBoardforEventVertical( key )
{
	var msg = null;
	var entriesv = this.getEventEntries( key );
	if ( entriesv != null )
	{
        msg = "<nobr>\n";
		for ( var j=0; j < entriesv.size(); j++ )
		{
		    var tmpevent = entriesv.get( j );
	        msg += '<a href="javascript:getImage(\'' + j + '\')"><img align=left ' + 
		           this.getImagesWidthHeight() +
	               ' src="' + tmpevent.getSrc() + '"></a><br><br><br>';	             
		}                           
		msg += "\n</nobr>";		
		//alert( msg );
    }
    	
	return msg;
}
function getDefaultImageBoardforEvent()
{
    var msg = null;
    var entriesv = this.getEventEntries( "DEF" );
    if ( entriesv != null )
    {
        msg = "<nobr>\n";
        for ( var j=0; j < entriesv.size(); j++ )
        {
            var tmpevent = entriesv.get( j );
            msg += '<a href="javascript:getDefaultImage(\'' + j + '\')"><img ' + 
                   this.getImagesWidthHeight() +
                   ' src="' + tmpevent.getSrc() + '"></a> ';                 
        }                           
        msg += "\n</nobr>";
    }
        
    return msg;
}
function getEvent( key, pos )
{
    var entriesv = this.getEventEntries( key );
    if ( entriesv != null )
    {
	    for ( var j=0; j < entriesv.size(); j++ )
	    {
	        if ( j == pos )
	            return entriesv.get( j )
	    }                        
    }
        
    return null;
}
function getEventEntries( key  )
{
    return this.eventhashtable.getHashValue( key );    
}
function getEvenManagerKeys()
{    
    return this.eventhashtable.getHashKeys();
}
function getEvenManagerValues()
{    
    return this.eventhashtable.getHashValues();
}
EventManager.prototype.toString=eventmanagerobjToString;
function eventmanagerobjToString()
{
   var msg = "EventManager.toString()\n";
           
   return msg;
}
//************************************************
//Instantiate the event manager
//************************************************
var eventmanager = new EventManager();
//-->    

