function fb_error(id,title,desc,scroll)
{
    if(typeof(scroll) == 'undefined')
        {
            scroll = 0;
        }
    
    var text = "<div class='fb_error'>";
    if(title != '') 
        {
            text = text + "<div class='title'>" + title + "</div>";
        }
    if(desc != '') 
        {
            text = text + "<div class='desc'>" + desc + "</div>";
        }
    text = text + "</div>";
    $('#' + id).html(text);
    
    if (scroll == 1)
        {
            $(document).scrollTop(0);
        }
    
    return true;
}

function fb_error_empty(target,title, type)
{   
    var type = type || '';
    var empty = {length: 0};
    var errField;
    $('#' + target + ' input, #' + target + ' select, #' + target + ' textarea').each(function(){
        var max = 3;
        var container = this.parentNode;
        var labels = [];
        while(max>0){
           labels = container.getElementsByTagName('label');
           if (labels.length == 1){
               break;
           }else{
               container = container.parentNode;
               max--;
           }
       }
       if (labels.length == 1){
            var span = container.getElementsByTagName('span');
            var elements = $('input:not([type=hidden]), select, textarea', container).toArray();
            var value = elements[0].value;
                for (var element in elements){
                    if (value != '' && elements[element].value == '' && elements[element].type != 'hidden'){
                        value = elements[element].value;
                    }
                }
            if (span.length == 1 && (value == '' || value == 'empty') && container.style.display != 'none'){
                try{
                   errField = labels[0].innerHTML.match(/(.+):\s?/)[1];
                   if (typeof(empty[errField]) == 'undefined'){
                       empty[errField] = errField;
                       empty.length++;
                   }
               }catch(e){}
            }
       }
    });       
    if (empty.length>0) 
    {
        var li = '';
        for (var key in empty){
            if (key != 'length')
            li += '<li>' + empty[key] + '</li>'; 
        }
        if (type == 'text'){
            return li;
        }else{
            li = '<ul>' + li + '</ul>';
            fbNotify.showNotify({title: title, description: li, target: target, position: 'before', type: 'error', timeout: false});
        }
//        fb_error(id,title,desc + '<ul>' + li +' </ul>',1);
        return true;
    }    
    else
    {
        return false;
    }    
}

function fb_error_obj(id,object,target,title,desc)
{
    if (typeof(object) == 'object' && $(object).size() > 0)
    {
        var ul;
        var li;
        var fields_name = [];
        var elements = $('#' + target + ' input, #' + target + ' select, #' + target + ' textarea');
        for (var i=0; i<elements.length; i++){            
            var par = elements[i].parentNode;            
            if (elements[i].id != ''){  
                if(typeof(par.parentNode.getElementsByTagName('label')[0]) != 'undefined')
                {
                    fields_name[elements[i].id] = par.parentNode.getElementsByTagName('label')[0].innerHTML.match(/[^:]*/);
                }                    
            }
            
        }
        ul = cE('ul',{},{});
        for (var key in object)
        {
            for (var item in object[key])
            {
                if (typeof(item) == 'string')
                {
                    li = cE('li',{},{});
                    if(typeof(fields_name[key]) != 'undefined')
                        {
                        li.innerHTML = fields_name[key] + ' - ' + object[key][item];
                        }
                    else
                        {
                        li.innerHTML = object[key][item];    
                        }
                    ul.appendChild(li);
                }
            }
        }             
        fb_error(id,title,desc + '<ul>' + ul.innerHTML + '</ul>',1);
        return true;
    } 
    else 
    {
        return false;
    }
}

function fb_error_hide(id)
{   
    $('#' + id).html('');
    return true;    
}

function fb_warning_hide(id,time)
{   
    if(typeof(time) == 'undefined')
        {
            time = 7000;
        }
    if(time != 0)
        {
            setTimeout(function() {
                $('#' + id).animate({height: 0, opacity: 0}, 'normal', function(){
                   $('#' + id).html(''); 
                });
            },time);
        }    
    return true;
}

function fb_show_info(id,title,desc)
{
    var text = "<div class='fb_info'>";
    if(title != '') 
        {
            text = text + "<div class='title'>" + title + "</div>";
        }
    if(desc != '') 
        {
            text = text + "<div class='desc'>" + desc + "</div>";
        }
    text = text + "</div>";
    $('#' + id).html(text);   
        
    return true;
}
