var land_map_controller;


var __land_names= Array();
__land_names[ 7 ]= 'Tirol';
__land_names[ 6 ]= 'Steiermark';
__land_names[ 5 ]= 'Salzburg';
__land_names[ 8 ]= 'Vorarlberg';
__land_names[ 2 ]= 'Karnten';
__land_names[ 3 ]= 'Niederosterreich';
__land_names[ 1 ]= 'Burgenland';
__land_names[ 9 ]= 'Wien';
__land_names[ 4 ]= 'Oberosterreich';





function landMapController()
{
    var _this= this;

    this.selected_land= false;

    this.highlightLand= function( land_name )
    {
        document.getElementById( 'land'+land_name ).style.display= "block";
        
        document.getElementById( 'landMenu'+land_name ).className= "mapLinkHover";
        
    }


    
    this.fadeLand= function( land_name )
    {
        if( land_name == this.selected_land )
            return;
        document.getElementById( 'land'+land_name ).style.display= "none";

        document.getElementById( 'landMenu'+land_name ).className= "mapLink";
    }   
    
    this.landHover= function( event )
    {
        var sender= getEventTarget( event );
        this.highlightLand( sender.alt );
    }


    this.landBlur= function( event )
    {
        var sender= getEventTarget( event );
        this.fadeLand( sender.alt );
    }


    this.landClick= function( event )
    {
        var sender= getEventTarget( event );

        if( this.selected_land )
            this.unselectLand();

        
        var land= ( sender.alt )?sender.alt:sender.rel;
        
        this.selectLand( land );
    }


    this.landLinkHover= function( event )
    {
        var sender= getEventTarget( event );
        document.getElementById( 'land'+sender.rel ).style.display= "block";
    }


    this.landLinkBlur= function( event )
    {
        var sender= getEventTarget( event );

        if( sender.rel == this.selected_land )
            return;
            
        document.getElementById( 'land'+sender.rel ).style.display= "none";
    }


    this.selectAllLands= function()
    {
        this.unselectLand();
        if(typeof search_controller!='undefined'){ search_controller.selectLand( 'all' );}
    }


    this.bindLandFunctions= function()
    {
        var lands= document.getElementsByClassName( 'inaustriaMapArea' );

        for( var itr= 0; itr < lands.length; itr++ )
        {
            addPortableEventListener(
                lands[ itr ],
                'mouseover',
                function( event ){ _this.landHover( event ); }
                );

            addPortableEventListener(
                lands[ itr ],
                'mouseout',
                function( event ){ _this.landBlur( event ); }
                );

            addPortableEventListener(
                lands[ itr ],
                'click',
                function( event ){ _this.landClick( event ); }
                );
        }
    }


    this.selectLand= function( land_name )
    {
        this.selected_land= land_name;
        document.getElementById( 'land'+land_name ).style.display= "block";
        document.getElementById( 'landMenu'+land_name ).className= "mapLinkHover";
		//mw+
        if (typeof inaustria_map !='undefined'){inaustria_map.showLand( land_name );}
        if(typeof search_controller!='undefined'){search_controller.selectLand( land_name );}
    }
    

    this.unselectLand= function()
    {
        document.getElementById( 'land'+this.selected_land ).style.display= "none";
        document.getElementById( 'landMenu'+this.selected_land ).className= "mapLink";
        this.selected_land= false;
    }
    


    this.selectLandFromCurrentAddress= function()
    {
/*        var addr= "%o", window.location.pathname.split( '/' );*/
        
        var path= window.location.pathname.split( '/' );

        if( path[ 4 ] )
        {
            var elems= path[ 4 ].split( '=' );
            if( elems[ 1 ] )
            {
                this.selectLand( __land_names[ parseInt( elems[ 1 ] ) ] );
            }
            
        }
    }
    
    

    this.bindLandMenuFunctions= function()
    {
        var lands= document.getElementsByClassName( 'mapLink' );

        for( var itr= 0; itr < lands.length; itr++ )
            if( lands[ itr ].rel )
            {
                addPortableEventListener(
                    lands[ itr ],
                    'mouseover',
                    function( event ){ _this.landLinkHover( event ); }
                    );

                addPortableEventListener(
                    lands[ itr ],
                    'mouseout',
                    function( event ){ _this.landLinkBlur( event ); }
                    );

                addPortableEventListener(
                    lands[ itr ],
                    'click',
                    function( event ){ _this.landClick( event ); }
                    );
            }

        addPortableEventListener(
            document.getElementById( 'landMapSelectAll' ),
            'click',
            function(){ _this.selectAllLands(); }
            );
        
    }




    this.bindLandMenuFunctions();
    this.bindLandFunctions();
    

    this.selectLandFromCurrentAddress();
}


function initLandMapController()
{
    land_map_controller= new landMapController();
    
}


runOnLoad( initLandMapController );

