(function() {
jQuery.fn.pingdomtablerenderer = function(parameters){
	/**
	 * Default settings
	 */
    var settings = {
        // Data retrieving settings
        data : null,
        
        // Events
        rendererCallback : function (){},
        
        // Template
        template : function(){
        	return '<tr><td>' + this.date + '</td><td><div class="bar" style="width: ' + this.percent + '%;"/>'+this.time+'</td></tr>';
        },
        oddClass : '',
        hoverClass : ''
    };
    jQuery.extend(settings, parameters);  
        
    /**
     * 
     */
    return this.each(function(){        
        var table = jQuery(this);     
        

        var sb = new StringBuilder();
        for(var i = 0; i < settings.data.length; i++){
        	sb.append(settings.template.call(settings.data[i]));
        }

        var text = sb.toString();
        table.children('tbody').html(text);  
	    table.children('tbody').ready(function(){
			//Hover function
			if(settings.hoverClass.length > 0){
				table.children('tbody').children('tr').hover(function() {
					jQuery(this).addClass("odd");			
				},function(){
					jQuery(this).removeClass("odd");
				});
			}
			
			//Select the even tr elements within the "TableStripe" ID and add the class "even"
			if(settings.oddClass.length > 0){
				table.children('tbody').children('tr:odd').addClass("odd");
			}		
	    });
	    settings.rendererCallback();
    })
};
})(jQuery);