function CalendarComponent(o,i,l,b){this.calId=o;this.currM=i;this.currY=l;this.url=b;this.prevBut;this.nextBut;this.advSearch;this.startDateBox;this.endDateBox;this.toggleId;this.advSearchOn=false;this.fieldName="";var a={names:["January","February","March","April","May","June","July","August","September","October","November","December"],numDays:[31,28,31,30,31,30,31,31,30,31,30,31]};this.init=function(u){p(this.currY,this.currM);this.prevBut=document.getElementById(o+"-prevMonth");this.nextBut=document.getElementById(o+"-nextMonth");var t=document.getElementById(o).getElementsByTagName("td");var r=document.getElementById(o).getElementsByTagName("a");for(var s=0;s<t.length;s++){if(Math.round(t[s].innerHTML)!==0){f(t[s],"mouseover",h,false);f(t[s],"mouseout",g,false);f(t[s],"focus",h,false);f(t[s],"blur",g,false);if(r[s]){f(r[s],"mouseover",h,false);f(r[s],"mouseout",g,false);f(r[s],"focus",h,false);f(r[s],"blur",g,false);}f(t[s],"click",function(v){q(v,u);},false);}}f(u.prevBut,"click",function(){u.prevMon(u);},false);f(u.nextBut,"click",function(){u.nextMon(u);},false);};this.prevMon=function(r){if(r.currM==1){r.currM=12;r.currY--;}else{r.currM--;}r.init(r);};this.nextMon=function(r){if(r.currM==12){r.currM=1;r.currY++;}else{r.currM++;}this.init(r);};this.highlightDate=function(r){this.highlightDates(r,r);};this.highlightDates=function(u,t){k();var r=document.getElementById(o).getElementsByTagName("A");for(var s=0;s<r.length;s++){if(Number(r[s].innerHTML)>=Number(u)&&Number(r[s].innerHTML)<=Number(t)){r[s].parentNode.className="active";}}};this.setCurrentDate=function(t){var r=document.getElementById(o).getElementsByTagName("A");for(var s=0;s<r.length;s++){if(r[s].lastChild.data==t){r[s].className="current";}}};this.toggleAdvSearch=function(){var r=document.getElementById(this.advSearch);var s=document.getElementById(this.toggleId);this.resetAdvSearch();if(r.style.display=="block"){r.style.display="none";s.innerHTML="more options";this.advSearchOn=false;}else{r.style.display="block";s.innerHTML="fewer options";this.advSearchOn=true;}};this.resetAdvSearch=function(){var t=document.getElementById(this.advSearch).getElementsByTagName("SELECT");var s=document.getElementById(this.advSearch).getElementsByTagName("INPUT");for(var r=0;r<t.length;r++){t[r].selectedIndex=0;}for(var r=0;r<s.length;r++){if(s[r].type.toLowerCase()==="text"){s[r].value="";}if(s[r].type.toLowerCase()==="checkbox"){s[r].checked=false;}}};this.setSearchBoxIds=function(s,r,u,t){this.advSearch=s;this.startDateBox=r;this.endDateBox=u;this.toggleId=t;};function p(x,y){var v="";if(x>1582&&x<=25000){v+='<table class="calendar" cellspacing="0" summary="Buffalo.com events calendar. Click on a date to see events for that date."><thead><tr>';v+='<th class="month"><a href="#" id="'+o+'-prevMonth" onclick="return false" tabindex="0">&laquo;</a></th><th colspan="5" id="'+o+'-title" class="month">'+a.names[y-1]+" "+x+'</th><th class="month"><a href="#" id="'+o+'-nextMonth" onclick="return false" tabindex="0">&raquo;</a></th></tr>';v+='<tr class="days"><th><abbr title="Sunday">S</abbr></th><th><abbr title="Monday">M</abbr></th><th><abbr title="Tuesday">T</abbr></th><th><abbr title="Wednesday">W</abbr></th>';v+='<th><abbr title="Thursday">T</abbr></th><th><abbr title="Friday">F</abbr></th><th><abbr title="Saturday">S</abbr></th></tr></thead>';v+="<tbody><tr>";if(m(x)===true){a.numDays[1]=29;}else{a.numDays[1]=28;}var u=d(1,y,x);var w=e(x,u);for(var r=1;r<w;r++){v+="<td></td>";}v+='<td><a href="#" onclick="return false" tabindex="0">1</a></td>';for(var t=2;t<=a.numDays[y-1];t++){if(e(x,d(t-1,y,x))==7){v+="</tr><tr>";}v+='<td><a href="#" onclick="return false">'+t+"</a></td>";}for(var s=e(x,d(a.numDays[y-1],y,x));s<7;s++){v+="<td></td>";}v+="</tr></tbody></table>";}document.getElementById(o).innerHTML=v;}function q(u,t){var v;var s;if(c(u).nodeName=="TD"){v=c(u).lastChild.innerHTML;}else{if(c(u).nodeName=="A"){v=c(u).innerHTML;}}var r=t.currM;var w=t.currY;t.highlightDate(v);if(r.toString().length===1){r="0"+r;}if(v.toString().length===1){v="0"+v;}if(t.fieldName!==""){document.getElementById(t.fieldName).value=w+"-"+r+"-"+v;document.getElementById(t.calId).style.display="none";}else{s=t.url.replace(/%Y/g,w).replace(/%M/g,r).replace(/%D/g,v);window.location.href=s;}}function h(s){var r;if(c(s).nodeName=="TD"){r=c(s);}else{if(c(s).nodeName=="A"){r=c(s).parentNode;}}if(r.className===""){r.className="hover";}}function g(s){var r;if(c(s).nodeName=="TD"){r=c(s);}else{if(c(s).nodeName=="A"){r=c(s).parentNode;}}if(r.className=="hover"){r.className="";}}function n(r){}function k(){var s=document.getElementById(o).getElementsByTagName("td");for(var r=0;r<s.length;r++){s[r].className="";}}function m(r){if((r%100!==0)&&(r%4===0)||(r%400===0)){return true;}else{return false;}}function d(r,v,u){var s=r;for(var t=1;t<v;t++){s+=a.numDays[t-1];}return s;}function e(s,r){var t=(s-(-r)+Math.floor((s-1)/4)-Math.floor((s-1)/100)+Math.floor((s-1)/400))%7;if(t===0){return 7;}return t;}function c(r){if(r.srcElement){return r.srcElement;}else{if(r.target){return r.target;}}}function f(t,s,r){if(t.attachEvent){t["e"+s+r]=r;t[s+r]=function(){t["e"+s+r](window.event);};t.attachEvent("on"+s,t[s+r]);}else{t.addEventListener(s,r,false);}}function j(t,s,r){if(t.detachEvent){t.detachEvent("on"+s,t[s+r]);t[s+r]=null;}else{t.removeEventListener(s,r,false);}}}function submitForm(){if(document.getElementById("id_q1").value==="search by event"){document.getElementById("id_q1").value="";}return true;}function toggleCat(b){var a=document.getElementById(b);if(a.style.display==="block"){a.style.display="none";}else{a.style.display="block";}}