The Public Works Department is responsible for managing the daily operations of public services, which includes the water, sanitary sewer, and storm water utility systems, as well as refuse collection, recycling collection, and brush pickup. Other responsibilities include upkeep and maintenance of municipal facilities, parks, streets, and village vehicles.
Services:
- Refuse and recycling pickup- Recycling Guidelines
- Leaf and yard waste pickup (SPRING - Last four Mondays in April) (FALL - Four Mondays before Thanksgiving)
- Brush pickup (May through November) (1st & 3rd Mondays of the month)
- Snow control & removal
- Maintenance of water, sanitary sewer, and storm water utility systems
- Maintenance of parks, streets, and village vehicles
- Maintenance of village facilities
- Resident weed & grass control
Contact:
Village Office
16 Garfield St.
North Fond du Lac, WI 54937
Phone: 920.929.3765
Fax: 929.929.3964
Department Name | First Name | Last Name | Profession | |
---|---|---|---|---|
Public Works | Mitch | Vis | Director | mvis@nfdl.org |
Public Works | Brian | Abitz | Superintendent | babitz@nfdl.org |
Public Works | Steve | Bein | Utility Operations Manager | sbein@nfdl.org |
Public Works | Josh | Weimer | Project Manager | jweimer@nfdl.org |
'); if (typeof settings.myClass !== 'undefined') $stacktable.addClass(settings.myClass); var markup = ''; var $caption, $topRow, headMarkup, bodyMarkup, tr_class; $table.addClass('stacktable large-only'); $caption = $table.find("caption").clone(); $topRow = $table.find('tr').eq(0); // using rowIndex and cellIndex in order to reduce ambiguity $table.find('tbody tr').each(function() { // declaring headMarkup and bodyMarkup, to be used for separately head and body of single records headMarkup = ''; bodyMarkup = ''; tr_class = $(this).prop('class'); // for the first row, "headIndex" cell is the head of the table // for the other rows, put the "headIndex" cell as the head for that row // then iterate through the key/values $(this).find('td,th').each(function(cellIndex) { if ($(this).html() !== ''){ bodyMarkup += '
'; } }); markup += '
'; }); $table.find('tfoot tr td').each(function(rowIndex,value) { if ($.trim($(value).text()) !== '') { markup += '
' + $(value).html() + '
'; } }); $stacktable.prepend($caption); $stacktable.append($(markup)); $table.before($stacktable); }); }; $.fn.stacktable = function(options) { var $tables = this, defaults = {headIndex:0}, settings = $.extend({}, defaults, options), headIndex; // checking the "headIndex" option presence... or defaults it to 0 if(options && options.headIndex) headIndex = options.headIndex; else headIndex = 0; return $tables.each(function() { var table_css = $(this).prop('class'); var $stacktable = $('
'); if (typeof settings.myClass !== 'undefined') $stacktable.addClass(settings.myClass); var markup = ''; var $table, $caption, $topRow, headMarkup, bodyMarkup, tr_class; $table = $(this); $table.addClass('stacktable large-only'); $caption = $table.find("caption").clone(); $topRow = $table.find('tr').eq(0); // using rowIndex and cellIndex in order to reduce ambiguity $table.find('tr').each(function(rowIndex) { // declaring headMarkup and bodyMarkup, to be used for separately head and body of single records headMarkup = ''; bodyMarkup = ''; tr_class = $(this).prop('class'); // for the first row, "headIndex" cell is the head of the table if (rowIndex === 0) { // the main heading goes into the markup variable markup += '
'; } else { // for the other rows, put the "headIndex" cell as the head for that row // then iterate through the key/values $(this).find('td,th').each(function(cellIndex) { if (cellIndex === headIndex) { headMarkup = '
'; } else { if ($(this).html() !== ''){ bodyMarkup += '
'; } } }); markup += headMarkup + bodyMarkup; } }); $stacktable.prepend($caption); $stacktable.append($(markup)); $table.before($stacktable); }); }; $.fn.stackcolumns = function(options) { var $tables = this, defaults = {}, settings = $.extend({}, defaults, options); return $tables.each(function() { var $table = $(this); var num_cols = $table.find('tr').eq(0).find('td,th').length; //first table
'); var col_i = 1; //col index starts at 0 -> start copy at second column. while (col_i < num_cols) { $table.find('tr').each(function(index) { var tem = $('
'); // todo opt. copy styles of $this; todo check if parent is thead or tfoot to handle accordingly if(index === 0) tem.addClass("st-head-row st-head-row-main"); var first = $(this).find('td,th').eq(0).clone().addClass("st-key"); var target = col_i; // if colspan apply, recompute target for second cell. if ($(this).find("*[colspan]").length) { var i =0; $(this).find('td,th').each(function() { var cs = $(this).attr("colspan"); if (cs) { cs = parseInt(cs, 10); target -= cs-1; if ((i+cs) > (col_i)) //out of current bounds target += i + cs - col_i -1; i += cs; } else i++; if (i > col_i) return false; //target is set; break. }); } var second = $(this).find('td,th').eq(target).clone().addClass("st-val").removeAttr("colspan"); tem.append(first, second); tb.append(tem); }); ++col_i; } $stackcolumns.append($(tb)); $table.before($stackcolumns); }); };}(jQuery));