/* see http://www.west-wind.com/weblog/posts/388213.aspx for status bar article and source of base code */
function StatusBar(sel,options)
{
    var _I = this;       
    var _sb = null;

    // options     
    this.elementId = "_showstatus";
    this.prependMultiline = true;   
    this.showCloseButton = false; 
    this.afterTimeoutText = null;

    this.cssClass = "statusbar";
    this.highlightClass = "statusbarhighlight";
    this.errorClass = "statuserror";
    this.closeButtonClass = "statusbarclose";
    this.additive = false;   

    $.extend(this,options);

    if (sel)
        _sb = $(sel);

    // create statusbar object manually
    if (!_sb)
        {
        _sb = $("<div id='_statusbar' class='" + _I.cssClass + "'>" +
        "<div class='" + _I.closeButtonClass +  "'>" +
        (_I.showCloseButton ? " X </div></div>" : "") )
        .appendTo(document.body)                   
        .show();
    }
    if (_I.showCloseButton)
        $("." + _I.cssClass).click(function(e) { $(_sb).hide(); });


    this.show = function(message,timeout,isError)
    {            
        if (_I.additive)       
            {
            var html = "<div style='margin-bottom: 2px;' >" + message + "</div>";
            if (_I.prependMultiline)
                _sb.prepend(html);
            else
                _sb.append(html);            
        }
        else
            {

            if (!_I.showCloseButton)    
                _sb.text(message);
            else
                {             
                var t = _sb.find("div.statusbarclose");                
                _sb.text(message).prepend(t);
            }
        }               

        _sb.show();        

        if (timeout)
            {
            if (isError)
                _sb.addClass(_I.errorClass);
            else
                _sb.addClass(_I.highlightClass);

            setTimeout( 
            function() {
                _sb.removeClass(_I.highlightClass); 
                if (_I.afterTimeoutText)
                    _I.show(_I.afterTimeoutText);
            },
            timeout);
        }                
    }  
    this.release = function()
    {
        if(_statusbar)
            $(_statusbar).remove();
    }       
}
// use this as a global instance to customize constructor
// or do nothing and get a default status bar
var _statusbar = null;
function showStatus(message,timeout,additive,isError)
{
    if (!_statusbar)
        _statusbar = new StatusBar();
    _statusbar.show(message,timeout,additive,isError);
}

$(document).ready(function() 
{
    $('.editable').each(function() 
    {
        var el = $(this);
        
        el.bind('dblclick', function() 
        {
            var before;
            var input;

            if(el.hasClass('textarea'))
            {
                var height = el.height();
                if(height < 30) height = 30;

                before = $.trim(el.html());
                
                //before = before.replace(/<br>/gi, '\r\n');
                before = before.replace(/<br>/gi, '\n');
                //before = before.replace(/<br>/gi, '\r');
                //erase current
                el.html('');

                input = $('<textarea>').attr(
                {
                  'class': 'box',
                  style: 'height:' + height + 'px;'
                });
                
                input.text(before);              
            }
            else
            {
                before = $.trim(el.text());
                //before = before.replace(/<br>/gi, '\r\n'); 
                before = before.replace(/<br>/gi, '\n');
                // before = before.replace(/<br>/gi, '\r');
                el.text('');
                
                input = $('<input>').attr(
                {
                  'class': 'box',
                  value: before
                });
                
                input.bind('keydown', function(e)
                {
                    if(e.key == 'enter') { this.fireEvent('blur'); }
                });
            }
            
            input.appendTo(el).select();

            //add blur event to input
            input.bind('blur', function() 
            {
                val = $.trim(input.val());
                //convert newlines back to br
                //el.set('html',val.replace(/\n/g, '<br>') ).addClass(val != '' ? '' : 'editable-empty');
                el.text(val).addClass(val != '' ? '' : 'editable-empty'); 
                //get value, place it in original element
                if($.trim(el.text()) != before)
                {
                    //save respective record
                    var url = 'index2.php?interface=ajaxcontent';
                    
                    $.ajax(
                    {
                       type: "POST",
                       url: url,
                       data: 'id=' + el.attr('rel') + '&content=' + el.text(),
                       success: function(msg){
                         alert( msg );
                       }
                     });
                }
                else alert("Nothing to commit");
            });
        });
    });
});

function block_ui()
{
    $.blockUI({ css: { 
            border: 'none', 
            padding: '15px', 
            backgroundColor: '#000', 
            '-webkit-border-radius': '10px', 
            '-moz-border-radius': '10px', 
            opacity: .5, 
            color: '#fff' 
    } }); 
}

/*Parse document and add editable regions when appropriate*/
/*
window.addEvent('domready', function() 
{
    //find the editable areas
    $$('.editable').each(function(el) {
        //add double-click and blur events
        el.addEvent('dblclick',function() 
        {            
            //replace current text/content with input or textarea element
            var before;

            if(el.hasClass('textarea'))
                {
                var size = el.getSize();
                var height = size.y;
                if(height < 30) height = 30;

                before = el.get('html').trim();
                //before = before.replace(/<br>/gi, '\r\n');
                before = before.replace(/<br>/gi, '\n');
                //before = before.replace(/<br>/gi, '\r');

                //erase current
                el.set('html','');
                var input = new Element('textarea', { 'class':'box', 'style':'height:' + height + 'px', 'text':before });                
            }
            else
                {
                before = el.get('text').trim();
                //before = before.replace(/<br>/gi, '\r\n'); 
                before = before.replace(/<br>/gi, '\n');
                // before = before.replace(/<br>/gi, '\r');
                el.set('text','');
                var input = new Element('input', { 'class':'box', 'value':before });  
                //blur input when they press "Enter"
                input.addEvent('keydown', function(e) { if(e.key == 'enter') { this.fireEvent('blur'); } });
            }
            input.inject(el).select();

            //add blur event to input
            input.addEvent('blur', function() 
            {
                val = input.get('value').trim();
                //convert newlines back to br
                //el.set('html',val.replace(/\n/g, '<br>') ).addClass(val != '' ? '' : 'editable-empty');
                el.set('text',val).addClass(val != '' ? '' : 'editable-empty'); 
                //get value, place it in original element
                if(el.get('text').trim() != before)
                    {
                    //save respective record
                    var url = 'index2.php?interface=ajaxcontent';
                    var request = new Request({
                        url:url,
                        method:'post',
                        onComplete: function(response) { alert(response); }                     
                    }).send('id=' + el.get('rel') + '&content=' + el.get('text'));
                }
                else alert("Nothing to commit");
            });
        });
    });    
});*/
