var searchStr = (location.search).substr(1,location.search.length);
var currentMonth;
var currentYear;
var ThisMonth=4;

var path = location.pathname.replace(/\\/g, "/");
var filename = path.substr(path.lastIndexOf("/")+1, path.length - path.lastIndexOf("/")-1);
var today = new Date();
var todayStr = (today.getMonth() + 1) + "/" + today.getDate() + "/" + today.getFullYear();

var calEvents = new Array();

calEvents[calEvents.length] = "2/6/2012|Land Use Public Hearing - 8:00 P.M. Board Office|";
calEvents[calEvents.length] = "2/14/2012|Human Services/Public Services Meeting  7:00 P.M. <br>-----------------------<br>Youth - 7:00 P.M. <br>-----------------------<br>Labor - 7:00 P.M.<br>-----------------------<br>Executive/Rules 7:30 P.M.<br>Board Meeting 8:00 P.M<br><br>All Saints Episcopal Church, 2329 Victory Blvd.|";
calEvents[calEvents.length] = "2/15/2012|Silver Lake Sunnyside Westerleigh 7:30 P.M. Silver Lake Tennis House Hart Blvd. & Revere St.|";
calEvents[calEvents.length] = "2/16/2012|Clifton/Concord/Stapleton - 7:30 Central Family Life Center, 59 Wright Street. |";
calEvents[calEvents.length] = "2/20/2012|President's Day Office Closed|";
calEvents[calEvents.length] = "2/21/2012|Mariners Harbor/Port Richmond 7:00 250 Park Avenue<br><br>St. George/West Brighton, - 7:30 P.M., - Walker Park Tennis House, 50 Bard Avenue<br><br>Rosebank/Ft. Wadsworth - 7:30 P.M., Mt. Carmel Hall, 36 Amity Street|";
calEvents[calEvents.length] = "2/28/2012|Waterfront - 7:00 P.M. Board Office|";



if (searchStr == "") {
	makeMonth(2,2012);
} else {
	var cal;
	cal = searchStr.split(",");
	makeMonth(cal[0],cal[1]);
}

function makeMonthQuery(query_how) {
	if(query_how == 0) {
		if(currentMonth == 1) {
			return "12," + (Math.round(currentYear) - 1);
		} else	{
			return (Math.round(currentMonth) - 1) + "," + currentYear;
		}
	} else {
		if(currentMonth == 12) {
			return "1," + (Math.round(currentYear) + 1);
		} else	{
			return (Math.round(currentMonth) + 1) + "," + currentYear;
		}
	}
}

function monthEnglish(theMonth){
	switch (Math.round(theMonth)) {
	case 1:
		return "January";
		break;
	case 2:
		return "February";
		break;
	case 3:
		return "March";
		break;
	case 4:
		return "April";
		break;
	case 5:
		return "May";
		break;
	case 6:
		return "June";
		break;
	case 7:
		return "July";
		break;
	case 8:
		return "August";
		break;
	case 9:
		return "September";
		break;
	case 10:
		return "October";
		break;
	case 11:
		return "November";
		break;
	case 12:
		return "December";
		break;
	default:
		return theMonth;
		break;
	}
}

function displayEvent(what) {
	eventSplit = calEvents[what].split("|");

	var dynEventDisplay = window.open("","NULL","scrollbars=yes,top=100,left=100,width=450,height=300");
	dynEventDisplay.document.open();
	dynEventDisplay.document.write('<html>');
	dynEventDisplay.document.write('<head><title>Calender Event</title></head>');
	dynEventDisplay.document.write('<body>');
	dynEventDisplay.document.write(eventSplit[1]);
	dynEventDisplay.document.write('<br><br><br><br><br>');
	dynEventDisplay.document.write('<center><form><input type="button" value="Close" onClick="window.close()"></form></center>');
	dynEventDisplay.document.write('</body>');
	dynEventDisplay.document.write('</html>');
	dynEventDisplay.document.close();
}

function findEvent(when) {
	whenSplit = when.split("/");
	for(y=0; y < calEvents.length; y++) {
		eventSplit = calEvents[y].split("|");
		if(eventSplit[0] == when) {
			//return '<a href="javascript:displayEvent(' + y + ')" rel="balloon1">' + whenSplit[1] + '</a> <br><br>' + eventSplit[1] + '<div id="balloon1" class="balloonstyle">' + eventSplit[1] + '</div>';
			return 'rel="balloon' + whenSplit[1] + '"><div id="balloon' + whenSplit[1] + '" class="balloonstyle">' + eventSplit[1] + '</div>';
			break;
		}
	}

	//return whenSplit[1];
}


function getLastDay(month, year) {
	var lastday = new Date(year, month-1, 1);
	var lastdaymonth = lastday.getMonth();

	var z = 1;
	do {
		lastday.setDate(z);
		z++;
	} while(lastdaymonth == lastday.getMonth());

	lastday.setMonth(lastday.getMonth() - 1);
	lastday.setDate(z-2);

	return lastday.getDate();
}

function writeTable(type, contents, td_color, tooltip) {
	if(td_color == null) {
		td_color = "#eeeeee";
	}

	switch (type) {
		case "open":
			document.write('<table width="499" border="0" cellspacing="1" cellpadding="1">');
			break;
		case "title":
			document.write('<tr>');
			document.write('<td bgcolor="' + td_color + '" align="center">');
			//document.write("<a href='" + filename + "?" + makeMonthQuery(0) + "'><font color='#ffffff'><b>&lt;</b></font></a>");
			document.write('</td>');
			document.write('<td bgcolor="' + td_color + '" align="center" colspan="5">');
			document.write(contents);
			document.write('</td>');
			document.write('<td bgcolor="' + td_color + '" align="center">');
			//document.write("<a href='" + filename + "?" + makeMonthQuery(1) + "'><font color='#ffffff'><b>&gt;</b></font></a>");
			document.write('</td>');
			document.write('</tr>');
			break;
		case "tr_open":
			document.write('<tr>');
			break;
		case "td_open_days":  // For dates
			document.write('<td width="14%" height="34" bgcolor="' + td_color + '" align="center">');
			document.write('<b>' + contents + '</b>');
			document.write('</td>');
			break;		
		case "tr_close":
			document.write('</tr>');
			break;
		case "td":
			if (tooltip != null) {
				document.write('<td bgcolor="#c7dbf0" align="left" valign="top" height="50"' + tooltip);
			} else {
				document.write('<td bgcolor="' + td_color + '" align="left" valign="top" height="50">');
			}
			
			document.write(contents);
			document.write('</td>');
			break;
		case "close":
			document.write('</table>');
			break;
	}
}

function makeMonth(month, year) {
	var lastday = getLastDay(month ,year);
	var day = new Date(year, month-1, 1);

	currentMonth = month;
	currentYear = year;

	writeTable("open");
	writeTable("title","<font color='#ffffff'><b>" + monthEnglish(currentMonth) + " " + currentYear + "</b></font>","#555555");
	writeTable("tr");
	writeTable("td_open_days", "Sun");
	writeTable("td_open_days", "Mon", "#dddddd");
	writeTable("td_open_days", "Tue");
	writeTable("td_open_days", "Wed", "#dddddd");
	writeTable("td_open_days", "Thu");
	writeTable("td_open_days", "Fri", "#dddddd");
	writeTable("td_open_days", "Sat");
	writeTable("tr_close");

	if (day.getDay() != 0) {
		writeTable("tr_open");
		for(x=0; x<day.getDay(); x++) {
			if(x==1 || x==3 || x==5) {
				writeTable("td", "&nbsp;", "#dddddd");
			} else {
				writeTable("td", "&nbsp;");
			}
		}
	}

	for (x=1; x<=lastday; x++) {
		toolTip = findEvent(day.getMonth() + 1 + "/" + day.getDate() + "/" + day.getFullYear());
		
		cellContent = day.getDate();
		if (todayStr == (day.getMonth() + 1 + "/" + day.getDate() + "/" + day.getFullYear())) {
			cellContent = "<b>" + cellContent + "</b>";
		}
		switch (day.getDay()) {
			case 0:
				writeTable("tr_open");
				writeTable("td", cellContent, null, toolTip);
				break;
			case 1:
				writeTable("td", cellContent, "#dddddd", toolTip);
				break;
			case 2:
				writeTable("td", cellContent, null, toolTip);
				break;
			case 3:
				writeTable("td", cellContent, "#dddddd", toolTip);
				break;
			case 4:
				writeTable("td", cellContent, null, toolTip);
				break;
			case 5:
				writeTable("td", cellContent, "#dddddd", toolTip);
				break;
			case 6:
				writeTable("td", cellContent, null, toolTip);
				writeTable("tr_close");
				break;
		}
		day.setDate(day.getDate() + 1);
	}

	if (day.getDay() < 7 && day.getDay() != 0) {
		for(x=day.getDay(); x<7; x++) {
			if ((x%2) == 0) {
				writeTable("td", "&nbsp;");
			} else {
				writeTable("td", "&nbsp;", "#dddddd");
			}
		}
		writeTable("tr_close");
	}

	writeTable("close");
}

//Rich HTML Balloon Tooltip: http://www.dynamicdrive.com/dynamicindex5/balloontooltip.htm

var disappeardelay=250  //tooltip disappear delay (in miliseconds)
var verticaloffset=0 //vertical offset of tooltip from anchor link, if any
var enablearrowhead=1 //0 or 1, to disable or enable the arrow image
var arrowheadimg=["../../includes/site_images/misc/arrowdown.gif", "../../includes/site_images/misc/arrowup.gif"] //path to down and up arrow images
var arrowheadheight=11 //height of arrow image (amount to reveal)

/////No further editting needed

var ie=document.all
var ns6=document.getElementById&&!document.all
verticaloffset=(enablearrowhead)? verticaloffset-(arrowheadheight-10) : verticaloffset

function getposOffset(what, offsettype){
var totaloffset=(offsettype=="left")? what.offsetLeft : what.offsetTop;
var parentEl=what.offsetParent;
while (parentEl!=null){
totaloffset=(offsettype=="left")? totaloffset+parentEl.offsetLeft : totaloffset+parentEl.offsetTop;
parentEl=parentEl.offsetParent;
}
return totaloffset;
}

function showhide(obj, e){
dropmenuobj.style.left=dropmenuobj.style.top="-500px"
if (e.type=="mouseover")
obj.visibility="visible"
}

function iecompattest(){
return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
}

function clearbrowseredge(obj, whichedge){
if (whichedge=="rightedge"){
edgeoffsetx=0
var windowedge=ie && !window.opera? iecompattest().scrollLeft+iecompattest().clientWidth-15 : window.pageXOffset+window.innerWidth-15
dropmenuobj.contentmeasure=dropmenuobj.offsetWidth
if (windowedge-dropmenuobj.x < dropmenuobj.contentmeasure)
edgeoffsetx=dropmenuobj.contentmeasure-obj.offsetWidth
return edgeoffsetx
}
else{
edgeoffsety=0
var topedge=ie && !window.opera? iecompattest().scrollTop : window.pageYOffset
var windowedge=ie && !window.opera? iecompattest().scrollTop+iecompattest().clientHeight-15 : window.pageYOffset+window.innerHeight-18
dropmenuobj.contentmeasure=dropmenuobj.offsetHeight
if (windowedge-dropmenuobj.y < dropmenuobj.contentmeasure) //move up?
edgeoffsety=dropmenuobj.contentmeasure+obj.offsetHeight+(verticaloffset*2)
return edgeoffsety
}
}

function displayballoontip(obj, e){ //main ballooon tooltip function
if (window.event) event.cancelBubble=true
else if (e.stopPropagation) e.stopPropagation()
if (typeof dropmenuobj!="undefined") //hide previous tooltip?
dropmenuobj.style.visibility="hidden"
clearhidemenu()
//obj.onmouseout=delayhidemenu
dropmenuobj=document.getElementById(obj.getAttribute("rel"))
showhide(dropmenuobj.style, e)
dropmenuobj.x=getposOffset(obj, "left")
dropmenuobj.y=getposOffset(obj, "top")+verticaloffset
dropmenuobj.style.left=dropmenuobj.x-clearbrowseredge(obj, "rightedge")+"px"
dropmenuobj.style.top=dropmenuobj.y-clearbrowseredge(obj, "bottomedge")+obj.offsetHeight+"px"
if (enablearrowhead)
displaytiparrow()
}

function displaytiparrow(){ //function to display optional arrow image associated with tooltip
tiparrow=document.getElementById("arrowhead")
tiparrow.src=(edgeoffsety!=0)? arrowheadimg[0] : arrowheadimg[1]
var ieshadowwidth=(dropmenuobj.filters && dropmenuobj.filters[0])? dropmenuobj.filters[0].Strength-1 : 0
//modify "left" value depending on whether there's no room on right edge of browser to display it, respectively
tiparrow.style.left=(edgeoffsetx!=0)? parseInt(dropmenuobj.style.left)+dropmenuobj.offsetWidth-tiparrow.offsetWidth-10+"px" : parseInt(dropmenuobj.style.left)+5+"px"
//modify "top" value depending on whether there's no room on right edge of browser to display it, respectively
tiparrow.style.top=(edgeoffsety!=0)? parseInt(dropmenuobj.style.top)+dropmenuobj.offsetHeight-tiparrow.offsetHeight-ieshadowwidth+arrowheadheight+"px" : parseInt(dropmenuobj.style.top)-arrowheadheight+"px"
tiparrow.style.visibility="visible"
}

function delayhidemenu(){
delayhide=setTimeout("dropmenuobj.style.visibility='hidden'; dropmenuobj.style.left=0; if (enablearrowhead) tiparrow.style.visibility='hidden'",disappeardelay)
}

function clearhidemenu(){
if (typeof delayhide!="undefined")
clearTimeout(delayhide)
}

function reltoelement(linkobj){ //tests if a link has "rel" defined and it's the ID of an element on page
var relvalue=linkobj.getAttribute("rel")
return (relvalue!=null && relvalue!="" && document.getElementById(relvalue)!=null && document.getElementById(relvalue).className=="balloonstyle")? true : false
}

function initalizetooltip(){
var all_links=document.getElementsByTagName("td")
if (enablearrowhead){
tiparrow=document.createElement("img")
tiparrow.setAttribute("src", arrowheadimg[0])
tiparrow.setAttribute("id", "arrowhead")
document.body.appendChild(tiparrow)
}
for (var i=0; i<all_links.length; i++){
if (reltoelement(all_links[i])){ //if link has "rel" defined and it's the ID of an element on page
all_links[i].onmouseover=function(e){
var evtobj=window.event? window.event : e
displayballoontip(this, evtobj)
}
all_links[i].onmouseout=delayhidemenu
}
}
}

if (window.addEventListener)
window.addEventListener("load", initalizetooltip, false)
else if (window.attachEvent)
window.attachEvent("onload", initalizetooltip)
else if (document.getElementById)
window.onload=initalizetooltip
