var tagManager = function () {
    var cur_el;
    
    return {
        setItem : function ( item ) {
            if ( cur_el ) {
                cur_el.setStyle( 'border-bottom', 'none' );
            }
            cur_el = item;
            cur_el.setStyle( 'border-bottom', '1px dashed #99cc00' );
        },
        setStep : function ( step ) {
            if ( step > 10 ) step = 10;
            if ( step < 0 ) step = 0;
            cur_el.setStyle( 'font-size', step * 1.5 + 10 );
            cur_el.getElement( 'input.multi' ).setProperty( 'value', step );
        },
        getStep : function () {
            return cur_el.getElement( 'input.multi' ).getProperty( 'value' ).toInt();
        },
        add : function ( title, step ) {
            // new Ajax
            var response = {
                id : 7,
                title : title,
                step : step
            };
            
            var label = new Element( 'label' ).set( 'text', response.title );
            var input = new Element( 'input' )
                .setProperties( {
                    'type'  : 'hidden',
                    'name'  : 'tags[' + title + ']',
                    'value' : response.step,
                    'class' : 'multi'
                } ).injectInside( label );
            label.injectInside( $$( '#tags div' )[0] );
            
            this.prepareItem( label );
        },
        prepareItem : function ( item ) {
            var multi = item.getElement( 'input.multi' );
            multi.setProperty( 'type', 'hidden' );
            
            tagManager.setItem( item );
            tagManager.setStep( multi.getProperty('value') );
            
            item.addEvent( 'mouseover', function () {
                tagManager.setItem( this) 
            } );
            item.addEvent( 'mousewheel', function ( e ) {
                if ( e.wheel < 0 ) {
                    tagManager.setStep( tagManager.getStep() - 1 );
                } else {
                    tagManager.setStep( tagManager.getStep() + 1 );
                }
                
                new Event( e ).stop();
            } );
            item.addEvent( 'click', function () {
                tagManager.setItem( this );
            } );
        }
    };
}();


