var reservations = new Array(	"2-01/30/2010","2-01/31/2010",
				"2-02/01/2010","2-02/02/2010","2-02/03/2010","2-02/04/2010","2-02/05/2010","2-02/06/2010","2-02/07/2010","2-02/08/2010","2-02/09/2010","2-02/10/2010","2-02/11/2010","2-02/12/2010","2-02/13/2010","2-02/14/2010","2-02/15/2010","2-02/16/2010","2-02/17/2010","2-02/18/2010","2-02/19/2010","2-02/20/2010","2-02/21/2010","2-02/22/2010","2-02/23/2010","2-02/24/2010","2-02/25/2010","2-02/26/2010","2-02/27/2010","2-02/28/2010",
				"2-03/01/2010","2-03/02/2010","2-03/03/2010","2-03/04/2010","2-03/05/2010","2-03/06/2010","2-03/07/2010","2-03/08/2010","2-03/09/2010","2-03/10/2010","2-03/11/2010","2-03/12/2010","2-03/13/2010","2-03/14/2010","2-03/15/2010","2-03/16/2010","2-03/17/2010","2-03/18/2010","2-03/19/2010","2-03/20/2010","2-03/21/2010","2-03/22/2010","2-03/23/2010","2-03/24/2010","2-03/25/2010","2-03/26/2010","2-03/27/2010","2-03/28/2010","2-03/29/2010","2-03/30/2010","2-03/31/2010",
				"2-04/01/2010","2-04/02/2010","2-04/03/2010","2-04/04/2010","2-04/05/2010","2-04/06/2010","2-04/07/2010","2-04/08/2010","2-04/09/2010","2-04/10/2010","2-04/11/2010","2-04/12/2010","2-04/13/2010","2-04/14/2010","2-04/15/2010",
				"2-05/01/2010","2-05/02/2010","2-05/03/2010","2-05/04/2010","2-05/05/2010","2-05/06/2010","2-05/07/2010"
)

var months = new Array("201001", "201002", "201003", "201004", "201005", "201006", "201007", "201008", "201009", "201010", "201011", "201012" )
var monthnames = new Array("","January","February","March","April","May","June","July","August","September","October","November","December")
 
//************************************************************************
function initialize() {
//************************************************************************
 
var OptionValue
var OptionDisplay
var optionHTML
var length
var mm
var str
 

//setup current date components
var d = new Date();
var curr_month = d.getMonth()+1

//var my_date = d.getDate()
//var my_day = d.getDay()
//var my_month = d.getMonth()+1
//var my_year = d.getFullYear()


//dynamically build calendar dropdowns
for(var i=0;i<months.length;i++)
	{
		//alert(months[i])
		mm = Number(months[i].substr(4,2))
		
		OptionValue = months[i]
		OptionDisplay = monthnames[mm] + " - " + months[i].substr(0,4)

		//setup ddCal1
		if (mm == curr_month)
	        	optionHTML = new Option(OptionDisplay, OptionValue, false, true)
	        else
	        	optionHTML = new Option(OptionDisplay, OptionValue, false, false)
	        
		length = document.all("ddCal").length
        	document.all("ddCal").options[length] = optionHTML
	}
	
	showCalendar("ddCal")
}

//document.all(calID).innerHTML = document.all(ddID).options[document.all(ddID).selectedIndex].value
//document.all(calID).innerHTML = document.all(ddID).options[document.all(ddID).selectedIndex].text
//document.all(calID).innerHTML = str

function showCalendar(ddID){
	//get the selected yyyymm from the dropdown
	var yyyymm = document.all(ddID).options[document.all(ddID).selectedIndex].value
	//alert(yyyymm)

	var str
	
	str = ''
	str = str + '<table class="calendar">'
	str = str + showMonthName(document.all(ddID).options[document.all(ddID).selectedIndex].text)
	str = str + showDaysOfWeek()
	str = str + showDaysOfMonth(document.all(ddID).options[document.all(ddID).selectedIndex].value)
	str = str + '</table>'
	
	document.all('myCal').innerHTML = str
}

function showMonthName(s){
	var str = ''
	str = str + '<tr>'
	str = str + '<td colspan="7" class="month">'
	str = str + s
	str = str + '</td>'
	str = str + '</tr>'
	return(str)
}


function showDaysOfWeek(){
	var str = ''
	str = str + '<tr>'
	str = str + '<td class="daysofweek">S</td>'
	str = str + '<td class="daysofweek">M</td>'
	str = str + '<td class="daysofweek">T</td>'
	str = str + '<td class="daysofweek">W</td>'
	str = str + '<td class="daysofweek">T</td>'
	str = str + '<td class="daysofweek">F</td>'
	str = str + '<td class="daysofweek">S</td>'
	str = str + '</tr>'
	return(str)
}

function showDaysOfMonth(yyyymm){
	var dd
	var mm
	var yyyy
	var str
	var myDate
	var myDayOfMonth
	var myDayOfWeek
	var d
	var startup = 0
	var startDOW = 0
	var unitID

	str = ''
	str = str + '<tr>'
	
	yyyy = yyyymm.substr(0,4)
	mm = yyyymm.substr(4,2)
	unitID = document.all("ddUnit").options[document.all("ddUnit").selectedIndex].value
	
	for(dd=1;dd<32;dd++){
		if(dd < 10)
			myDate = mm + '/0' + dd + '/' + yyyy		//add in zero padding, as needed
		else
			myDate = mm + '/' + dd + '/' + yyyy
			
		if(isValidDate(myDate)){
			d = new Date(myDate)
			myDayOfWeek = d.getDay()
			myDayOfMonth = d.getDate()
			while (startup == 0 && startDOW < myDayOfWeek){
				str = str + '<td class="blank">&nbsp;</td>'
				startDOW++
			}
			startup++

			//need to set the style for the day:  reserved or open
			//check reservations - unit + date
			//alert(myDate)
			if(isDateBooked(unitID, myDate))
				str = str + '<td class="reserved">' + myDayOfMonth + '</td>'
			else
				str = str + '<td class="open">' + myDayOfMonth + '</td>'

			if(myDayOfWeek == 6){
				str = str + '</tr>'
				str = str + '<tr>'
			}
		}
		//else
		//	str = str + '<td>invalid' + myDate + '</td>'
	}

	str = str + '</tr>'

	return(str)
}

function isDateBooked(unitID, myDate){
	for(var i=0;i<reservations.length;i++){
		if(reservations[i] == unitID + "-" + myDate)
			return(true)
	}
	return(false)
}



//Original:  Sandeep V. Tamhankar (stamhankar@hotmail.com)

//This script and many more are available free online at
//The JavaScript Source!! http://javascript.internet.com

function isValidDate(dateStr) {
// Checks for the following valid date formats:
// MM/DD/YY   MM/DD/YYYY   MM-DD-YY   MM-DD-YYYY
// Also separates date into month, day, and year variables

var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{2}|\d{4})$/;

// To require a 4 digit year entry, use this line instead:
// var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{4})$/;

var matchArray = dateStr.match(datePat); // is the format ok?
if (matchArray == null) {
//alert("Date is not in a valid format.")
return false;
}
month = matchArray[1]; // parse date into variables
day = matchArray[3];
year = matchArray[4];
if (month < 1 || month > 12) { // check month range
//alert("Month must be between 1 and 12.");
return false;
}
if (day < 1 || day > 31) {
//alert("Day must be between 1 and 31.");
return false;
}
if ((month==4 || month==6 || month==9 || month==11) && day==31) {
//alert("Month "+month+" doesn't have 31 days!")
return false
}
if (month == 2) { // check for february 29th
var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
if (day>29 || (day==29 && !isleap)) {
//alert("February " + year + " doesn't have " + day + " days!");
return false;
   }
}
return true;  // date is valid
}

