// JavaScript Document
var sep = '*~';
var subSep = '|';

var setSection = 0;
var dayArray = new Array();
var monthArray = new Array();

function updateDays(m, c, d, e, w) {
	document.getElementById('setMonth').innerHTML = m;
	monthArray = new Array();
	var table = document.getElementById('calendarTable');
	var dayCount = 1;
	var lastDayCount = e - w + 1;
	var nexDayCount = 1;
	
	for(i = 1; i < table.rows.length; i++) {
		for(q = 0; q < table.rows[i].cells.length; q++) {
			if(lastDayCount <= e) {
				table.rows[i].cells[q].innerHTML = '<span class="cal_date_non">' + lastDayCount + '</span>';
				lastDayCount++;
			}
			else {
				if(dayCount <= d) {
					if(c == dayCount)
						table.rows[i].cells[q].innerHTML = '<span class="cal_date_cur">' + dayCount + '</span>';
					else
						table.rows[i].cells[q].innerHTML = '<span class="cal_date_sel">' + dayCount + '</span>';

					//getCurDay(dayCount, false, (i+1), q);
					monthArray[dayCount] = table.rows[i+1].cells[q];
					dayCount++;
				}
				else {
					table.rows[i].cells[q].innerHTML = '<span class="cal_date_non">' + nexDayCount + '</span>';
					nexDayCount++;
				}
			}
			table.rows[i+1].cells[q].innerHTML = '&nbsp;';
		}
		i++;
	}
	getAllDays('', false);
}

function getAllDays(field, ret) {
	if(ret) {
		var previous = 0;
		var setReturn = '';
		
		if(field != '') {
			for(i = 0; i < field.length; i++) {
				var subField = field[i].split(subSep);
				if(parseInt(subField[0]) > 0) {
					if(previous != subField[0] && previous != '') {
						monthArray[parseInt(previous)].innerHTML = '<ul>' + setReturn + '</ul>';
						setReturn = '';
					}
					var setExternalLink = '<a href="eventlisting.php?id=' + subField[1] + '" target="_self">' + subField[2] + '</a>';
					//if(subField[3] != '' && subField[3] != undefined)
					//	setExternalLink = '<a href="eventlisting.php?id=' + subField[3] + '" target="_self">' + subField[2] + '</a>';
					setReturn += '<li style="background:#' + subField[4] + '">' + setExternalLink + '</li>';
					previous = subField[0];
				}
			}
			if(setReturn != '')
				monthArray[parseInt(previous)].innerHTML = '<ul>' + setReturn + '</ul>';
		}
	}
	else
		ajaxLoader('finder.php?t=alldays&h=' + setSection + '&m=' + document.getElementById('setMonth').innerHTML, 'allday');
}



function getNxtMonth(field, ret) {
	if(ret) {
		updateDays(field[0], field[1], field[2], field[3], field[4]);
	}
	else
		ajaxLoader('finder.php?t=next&d=' + document.getElementById('setMonth').innerHTML + '&n=' + field, 'month');
}

function getCurDay(field, ret, r, c) {
	if(ret) {
		var table = document.getElementById('calendarTable');
		var setReturn = '&nbsp;';
		if(field != '') {
			setReturn = '<ul>';
			for(i = 0; i < field.length; i++) {
				var subField = field[i].split(subSep);
				var setExternalLink = '<a href="eventlisting.php?id=' + subField[0] + '" target="_self">' + subField[1] + '</a>';
				if(subField[2] != '' && subField[2] != undefined)
					setExternalLink = '<a href="eventlisting.php?id=' + subField[2] + '" target="_self">' + subField[1] + '</a>';
				setReturn += '<li>' + setExternalLink + '</li>';
					
			}
			setReturn += '<ul>';
		}
		
		table.rows[r].cells[c].innerHTML = setReturn;
	}
	else
		ajaxLoader('finder.php?t=day&m=' + document.getElementById('setMonth').innerHTML + '&d=' + field + '&q=' + r + '&c=' + c, 'day');
}

function ajaxLoader(url,id) {
  if (document.getElementById) {
    var x = (window.ActiveXObject) ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
  }
  if (x) {
    x.onreadystatechange = function() {
      if (x.readyState == 4 && x.status == 200) {
				if(id == 'month') {
					getNxtMonth(x.responseText.split(sep), true);
				}
				else if(id == 'allday') {
					getAllDays(x.responseText.split(sep), true);
				}
				else if(id == 'day') {
					var subF = x.responseText.split('*-*');
					var subF2 = subF[0].split(subSep);
					
					getCurDay(subF[1].split(sep), true, subF2[0], subF2[1]);
				}
				else {
					el = document.getElementById(id);
					el.innerHTML = x.responseText;
				}
      }
    }

    x.open("GET", url + '&r=' + rdm(), true);
    x.send(null);
  }
}

function rdm() {
	return Math.floor(Math.random()*100000001);
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}
