(function( $ ){
    $.fn.camouflage = function( options ) {
        
        var defaults = { 
            delimeter: ' | ',
            template: '{text}',
            output: null
        };

        var opts = $.extend( defaults, options );

        function ucfirst( str )
        {
            return str.charAt( 0 ).toUpperCase() + str.substr( 1 );
        }

        var links = $.map( this.html().split( opts.delimeter ), function( str, i ) {
            if ( str.match( /<a [^>]*href="([^"]+)"[^>]*>([^<]*)<\/a>/i ) === null ) 
                return;

            var url  = RegExp.$1;
            var link = ucfirst( RegExp.$2 );
            var text = ucfirst( $.trim( str.replace( /<.+?>/g, '' ) ) );
            var host = url.replace( /http:\/\/([^\/]+).*/, '$1' );

            var result = opts.template;
            result = result.replace( '{url}',  url );
            result = result.replace( '{link}', link );
            result = result.replace( '{text}', text );
            result = result.replace( '{host}', host );

            return result
        });

        var output = opts.output || this;
        var result = links.join( '' );
        
        if ( output && output != this )
        {
            this.remove();
            output.append( result );
        }
        else
        {
            this.html( result );
        }
        
//        alert( result );
            
    };
})( jQuery );


