$.fn.dataTableExt.afnFiltering.push(
    function( oSettings, aData, iDataIndex ) {
        // "date-range" is the id for my input
        var dateRange = $('#date-range').attr("value");

        // parse the range from a single field into min and max, remove " - "
        dateMin = dateRange.substring(0,4) + dateRange.substring(5,7)  + dateRange.substring(8,10);
        dateMax = dateRange.substring(13,17) + dateRange.substring(18,20) + dateRange.substring(21,23);

        // 4 here is the column where my dates are.
        var date = strip_tags(aData[0]);

        date = date.substring(6,10) + date.substring(3,5) + date.substring(0,2)

        // run through cases
        if ( dateMin == "" && date <= dateMax){
            return true;
        }
        else if ( dateMin =="" && date <= dateMax ){
            return true;
        }
        else if ( dateMin <= date && "" == dateMax ){
            return true;
        }
        else if ( dateMin <= date && date <= dateMax ){
            return true;
        }
        // all failed
        return false;
    }
);

function strip_tags(html){
    if(arguments.length < 3) {
        html=html.replace(/<\/?(?!\!)[^>]*>/gi, '');
    } else {
        var allowed = arguments[1];
        var specified = eval("["+arguments[2]+"]");
        if(allowed){
            var regex='</?(?!(' + specified.join('|') + '))\b[^>]*>';
            html=html.replace(new RegExp(regex, 'gi'), '');
        } else{
            var regex='</?(' + specified.join('|') + ')\b[^>]*>';
            html=html.replace(new RegExp(regex, 'gi'), '');
        }
    }

    return html;
}

