function cc(x)
{
    if(window.console && console.log)
    console.log(x);
}

jQuery.fn.typefaceFirstLetter = function(options)
{
  
    var context = $.extend(
    {
        'family': 'Arial',
        'addClass': ''
    }, options);
    
    var element = this;
    
    function applyFor(el)
    {
        var el = $(el);
        var html = $.trim($(el).html());
        
        if (/(.{1})(.+)/.test(html)) 
        {
        
            var letter = html.substring(0, 1);
            var any = html.substring(1, html.length);
            
            var result = ''+
            '<span class="typeface-js '+
            context.addClass +
            '" style="font-family: ' +
            context.family +
            '">' +
            letter +
            '</span>' +
            '<span>' +
            any +
            '</span>'
            
            el.html(result);
            
            _typeface_js.renderDocument( function(e) { e.style.visibility = 'visible' } ); 

            
        }
        
    }
    
    function findBy(element)
    {
    
        var elements = element.textNotEmpty();
        
        if (elements.length > 0) 
        {
            return elements.first();
        }
        
    }
    
    // wrap html
    
    this.html('<div class="typeface-first-letter-box">' + this.html() + '</div>');

    var x = findBy(this);
    
    if(x)
    {
      applyFor(x);
    }    
    
    
}


jQuery.fn.textNotEmpty = function()
{

    var element = this;
    
    var elements = element.find('*').filter(function()
    {
        var el = $(this);
        
        var html = $.trim(el.html());
        var text = $.trim(el.text());
        
        var rx = /[^<>]{1,}/;
        
        if (rx.test(html) && rx.test(text)) 
        {
            var h = html.substring(0, 2);
            var t = text.substring(0, 2);
            
//                    cc([h, t]);
            
            return h == t ? true : false;
        }
        
        return false;
        
    });
    
    return elements;
    
}
