var active = 0;
var refreshTO;
var clickToHold = "Click to hold";
var clickToRelease = "Click to release";       


    function onElemOver( elem )
    {
        if ( active == 0 )
        {
            //clearTimeout( refreshTO );
 //           elem.setAttribute( "onClick", "onElemClick( this )" );
            hideAll( elem );
            elem.style.cursor = "pointer";
            elem.getElementsByTagName('div')[0].innerHTML = clickToHold;
            document.getElementById('hn3').style.visibility = "visible";

            var idNum = elem.getAttribute('id').replace('hn', '');

            if ( Objects[ idNum ] )
            {
                var elemek = new Object();

                var j;
                for ( j = 0; j < Objects[ idNum ].length; j++ )
                {
                    elemek[j] = document.getElementById( 'hn'+Objects[ idNum ][j].target );
                    elemek[j].setAttribute('class' , elem.getAttribute('class') );
                    elemek[j].getElementsByTagName('div')[0].innerHTML = Objects[ idNum ][j].myValue;
                    elemek[j].style.cursor = "pointer";

                    if ( elemek[j].currentStyle )
                    {
                      elemek[j].className = elem.className;
                    }

                }
                elemek.name = 'hn'+idNum;
                elemek.length = j;
                opaceUs( elemek, '0%', '100%', 20, true );
            }
        }
    }

    function onElemOut( elem )
    {
        if ( active == 0 )
        {
            //refreshTO = setTimeout( "resetMap()", 150 );
            for ( var i = 1; i < 17; i++)
            {
                clearTimeout( opTimeOuts[ 'hn'+i] );
                clearTimeout( opTimeOuts[ 'all' ] );
                opLepes[ 'hn'+i ] = 0;
                opLepes[ 'all' ] = 0;
                opacing = null;
            }

            elem.getElementsByTagName('div')[0].innerHTML="";
            resetMap();
            setTimeout( "showMap()", 200);
        }
    }

    function onElemClick( elem  )
    {
        if ( active == 0 )
        {
            active = elem.getAttribute('id').replace('hn', '' );
            elem.getElementsByTagName('div')[0].innerHTML = clickToRelease;
        }
        else if ( active == elem.getAttribute('id').replace('hn', '' ) )
        {
            active = 0;
            elem.getElementsByTagName('div')[0].innerHTML = clickToHold;
        }
        else
        {
          var j;
          for ( j = 0; j < Objects[ active ].length; j++ )
          {
              if ( document.getElementById( 'hn'+Objects[ active ][j].target ) == elem )
                new Ajax.Updater('updater', '/hnegyzet/showItem',{ asynchronous:true, evalScripts:true, parameters:'itemId='+Objects[ active ][ j ].id+'&cssClass='+elem.getAttribute('class')+'&mood='+Objects[ active ][ j ].myValue } );
          }
        }
    }
    

    function hideAll( elem )
    {
        for ( var i = 1; i < 17; i++ )
        {
            if ( elem != document.getElementById( "hn"+i ) )
            {
                document.getElementById( "hn"+i ).style.filter = "alpha(opacity="+parseInt( 0 ) + ")";
                document.getElementById( "hn"+i ).style.opacity = 0.0;
                clearTimeout( opTimeOuts[ 'all' ] );
                clearTimeout( opTimeOuts[ 'hn'+i] );
                document.getElementById( "hn"+i ).style.cursor = "default";
                opLepes[ 'hn'+i ] = 0;
                opLepes[ 'all' ] = 0;
                opacing = null;
            }
            else
            {
                document.getElementById( "hn"+i ).style.filter = "alpha(opacity="+parseInt( 100 ) + ")";
                document.getElementById( "hn"+i ).style.opacity = 1.0;
            }
        }
    }
    
    function resetMap()
    {
            for ( var i = 1; i < 17; i++ )
            {
                var r = parseInt( (i-1)/4 + 1);
                var c = parseInt( (i-1)%4 + 1);
                document.getElementById( "hn"+i ).getElementsByTagName('div')[0].innerHTML="";
                
                document.getElementById( "hn"+i ).setAttribute( 'class', 'c'+c+'r'+r );
                if ( document.getElementById( "hn"+i ).currentStyle )
                {
                   // IE -.-
                   document.getElementById( "hn"+i ).className= "c"+c+"r"+r;
                }

                document.getElementById( "hn"+i ).style.cursor = "default";
                document.getElementById( "hn"+i ).style.filter = "alpha(opacity="+parseInt( 0 ) + ")";
                document.getElementById( "hn"+i ).style.opacity = 0.0;
            }
    }

    function showMap()
    {
        var elemek = new Object();
        for ( var i = 0; i < 16; i++)
        {
            elemek[i] = document.getElementById( 'hn'+(i+1) );
        }
            elemek.name = 'all';
            elemek.length = 16;         
        if ( opacing == null )
        {          
            opaceUs( elemek, '0%', '100%', 10, true ); 
        }
    }