Search
General Search

Air Quality Advisory Council

The Air Quality Advisory Council (AQAC) serves as the initial rulemaking body for the AQD and operates under the authority of the Oklahoma Clean Air Act and the Oklahoma Environmental Quality Code. The AQAC holds public hearings, reviews air quality issues, and provides expertise about various air quality issues. All air quality rules and regulations must first be reviewed and approved by the AQAC before being recommended to the Oklahoma Environmental Quality Board. Once adopted by the Board, the rules proceed to the State Legislature and the Governor for final approval. The AQAC normally schedules three meetings per year – in January, June, and October.

Sign up for email/mobile AQAC notifications of upcoming council meetings and associated public hearings.

Name Appointed By Representing
Laura Lodes, Chair Governor Engineering
Garry Keele, Vice-Chair Governor General Public
Gregory Elliott Governor Petroleum
James Farrell Governor Manufacturing
Jefferson Wilber Governor Agriculture
Jeffrey Taylor Governor Local Government
John Privrat Governor Transportation
Matthew Caves Governor Electric Utility
Michael Thayer Governor Higher Education

Calendar of Events

Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
Sun Mon Tue Wed Thu Fri Sat
'); } }); // Initialize the calendar by appending the HTML dates function init_calendar(date) { $(".tbody").empty(); $(".events-container").empty(); var calendar_days = $(".tbody"); var month = date.getMonth(); var year = date.getFullYear(); var day_count = days_in_month(month, year); var row = $(""); var today = date.getDate(); // Set date to 1 to find the first day of the month date.setDate(1); var first_day = date.getDay(); // 35+firstDay is the number of date elements to be added to the dates table // 35 is from (7 days in a week) * (up to 5 rows of dates in a month) for(var i=0; i<35+first_day; i++) { // Since some of the elements will be blank, // need to calculate actual date from index var day = i-first_day+1; // If it is a sunday, make a new row if(i%7===0) { calendar_days.append(row); row = $(""); } // if current index isn't a day in this month, make it blank if(i < first_day || day > day_count) { var curr_date = $(""+""); row.append(curr_date); } else { var curr_date = $(""+day+""); var events = check_events(day, month+1, year); if(today===day && $(".active-date").length===0) { curr_date.addClass("active-date"); show_events(events, months[month], day); } // If this date has any events, style it with .event-date if(events.length!==0) { curr_date.addClass("event-date"); for(var ii=0; ii

'+events[ii]["occasion"]+ '

'+events[ii]["day"]+' '+monthname+' '+events[ii]["year"]+'

'); } } // Set onClick handler for clicking a date curr_date.click({events: events, month: months[month], day:day}, date_click); row.append(curr_date); } } // Append the last row and set the current year calendar_days.append(row); $(".year").text(year); } // Get the number of days in a given month/year function days_in_month(month, year) { var monthStart = new Date(year, month, 1); var monthEnd = new Date(year, month + 1, 1); return (monthEnd - monthStart) / (1000 * 60 * 60 * 24); } // Event handler for when a date is clicked function date_click(event) { var $container = $("html,body"); var $scrollTo = $('.events-container'); // $container.animate({scrollTop: $scrollTo.offset().top - $container.offset().top + $container.scrollTop(), scrollLeft: 0},3000); $container.animate({scrollTop: $scrollTo.offset().top, scrollLeft: 0},500); $(".events-container").show(250); $(".active-date").removeClass("active-date"); $(this).addClass("active-date"); //show_events(event.data.events, event.data.month, event.data.day); }; // Event handler for when a month is clicked function month_click(event) { $(".events-container").show(250); $("#dialog").hide(250); var date = event.data.date; $(".active-month").removeClass("active-month"); $(this).addClass("active-month"); var new_month = $(".month").index(this); var year = date.getFullYear(); date.setMonth(new_month); fetch_more_events(year, new_month, event); init_calendar(date); } // Event handler for when the year right-button is clicked function next_year(event) { $("#dialog").hide(250); var date = event.data.date; var new_year = date.getFullYear()+1; $("year").html(new_year); date.setFullYear(new_year); var new_year = date.getFullYear(); var new_month = date.getMonth()+1; fetch_more_events(new_year, new_month, event); init_calendar(date); } // Event handler for when the year left-button is clicked function prev_year(event) { $("#dialog").hide(250); var date = event.data.date; var new_year = date.getFullYear()-1; $("year").html(new_year); date.setFullYear(new_year); var new_year = date.getFullYear(); var new_month = date.getMonth()+1; fetch_more_events(new_year, new_month, event); init_calendar(date); } // Event handler for clicking the new event button function new_event(event) { // if a date isn't selected then do nothing if($(".active-date").length===0) return; // remove red error input on click $("input").click(function(){ $(this).removeClass("error-input"); }) // empty inputs and hide events $("#dialog input[type=text]").val(''); $("#dialog input[type=number]").val(''); $(".events-container").hide(250); $("#dialog").show(250); // Event handler for cancel button $("#cancel-button").click(function() { $("#name").removeClass("error-input"); $("#count").removeClass("error-input"); $("#dialog").hide(250); $(".events-container").show(250); }); // Event handler for ok button $("#ok-button").unbind().click({date: event.data.date}, function() { var date = event.data.date; var name = $("#name").val().trim(); var count = parseInt($("#count").val().trim()); var day = parseInt($(".active-date").html()); // Basic form validation if(name.length === 0) { $("#name").addClass("error-input"); } else if(isNaN(count)) { $("#count").addClass("error-input"); } else { $("#dialog").hide(250); console.log("new event"); /*new_event_json(name, count, date, day);*/ date.setDate(day); init_calendar(date); } }); } // Display all events of the selected date in card views function show_events(events, month, day) { // Clear the dates container $(".events-container").empty(); $(".events-container").show(250); console.log(event_data["events"]); // If there are no events for this date, notify the user if(events.length===0) { var event_card = "
There are no events planned for "+month+" "+day+".
"; $(".events-container").append(event_card); } else { // Go through and add each event as a card to the events container for(var i=0; i Minutes"); } } } } else if(events[i]['minutes_format'] == "Text") { var minutes = events[i]['minutes_text']; } if(events[i]['agenda_format'] == "Pdf") { var agendaspdffiles = events[i]['agenda_pdf']; if(agendaspdffiles) { var agendasfilescount = agendaspdffiles.length; for (var agcount = 0; agcount < agendasfilescount; agcount++) { agenda = agenda.concat(" Agendas "); } } } else if(events[i]['agenda_format'] == "Text") { var agenda = events[i]['agenda_text']; } else if(events[i]['agenda_format'] == "None") { var agenda = "No Agendas Set"; } } } } // Checks if a specific date has any events function check_events(day, month, year) { var events = []; for(var i=0; i