var cgisFileName = location.pathname.substring(location.pathname.lastIndexOf('/')+1); 

cgisFileName = cgisFileName.substring(0,cgisFileName.lastIndexOf("."))

//special redirect for events page

//if (cgisFileName == 'events') document.location = 'http://tools.fas.harvard.edu/cgi-bin/calendar/exporter.cgi?view=monthview&cal=102060&template_url=http%3A%2F%2Fcgis.fas.harvard.edu%2Fevents.html&show_endtime=1&show_location=1&show_contactphone=1&show_contactname=1';

if (cgisFileName == 'events') { var CalWin = window.open('monthly.html','CalWin','toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=800');CalWin.focus();history.go(-1); }

var isHomePage = false

if (cgisFileName == 'index' || cgisFileName == '') isHomePage = true;

if (window.name == 'calendar') { 

	w("<style type='text/css'>");

	w("html { ");

	w("	scrollbar-arrow-color: #bbbbbb;	scrollbar-base-color: #ffffff;	scrollbar-face-color: #ffffff;	scrollbar-highlight-color: #ffffff;	scrollbar-shadow-color: #ffffff; ");

	w("</style>");

}

//var imgPrefix = (location.hostname == 'cgis.fas.harvard.edu' || location.hostname == '' || location.hostname == 'localhost' || location.hostname == '24.128.127.149') ? '' : 'http://cgis.fas.harvard.edu/';

var imgPrefix = ( location.hostname.toLowerCase().indexOf( "tools." ) == -1 ) ? '' : 'http://cgis.fas.harvard.edu/';

var navItemStr = "Departments and Research Centers|Library and Data Lab|Useful Resources|Events|Contact"

var navItemArray = navItemStr.split("|");

var navItemStr2 = "Room and Equipment Scheduling|IT Services and Support|Building Operations|Green Program"

var navItemArray2 = navItemStr2.split("|");





//alert('imgPrefix = ' + imgPrefix + '\n cgisFileName = ' + cgisFileName);

function toggle(id){
	
	var target = document.getElementById(id);
	
	if (target.style.display=='block'){
		target.style.display='none';
	}else{
		target.style.display = 'block';
	}
	
}

function checkform(){
	var errorString = '';
	if (document.myform.r_room.value==''){
		// something is wrong
		errorString += 'Please select a room for your event\n';
	}
	if (document.myform.re_FROMEMAIL.value==''){
		// something else is wrong
		errorString += 'Please enter your email address\n';
	}
	if (document.myform.r_startMinute.value==''){
		// something else is wrong
		errorString += 'Please enter your event start minute\n';
	}
	if (document.myform.r_startHour.value==''){
		// something else is wrong
		errorString += 'Please enter your event start hour\n';
	}
	if (document.myform.r_month2.value==''){
		// something else is wrong
		errorString += 'Please enter your event start month\n';
	}
	 if (document.myform.r_day2.value==''){
		// something else is wrong
		errorString += 'Please enter your event day\n';
	}
	 if (document.myform.r_year2.value==''){
		// something else is wrong
		errorString += 'Please enter your event year\n';
	}
	 if (document.myform.r_stopMinute.value==''){
		// something else is wrong
		errorString += 'Please enter the time your event stops - minutes\n';
	}
	 if (document.myform.r_stopHour.value==''){
		// something else is wrong
		errorString += 'Please enter the time your event stops - hour\n';
	}
	 if (document.myform.r_recurring.value==''){
		// something else is wrong
		errorString += 'Please indicate whether or not your event is recurring\n';
	}
	 if (document.myform.r_description.value==''){
		// something else is wrong
		errorString += 'Please enter an event description\n';
	}
	 if (document.myform.r_attendance.value==''){
		// something else is wrong
		errorString += 'Please enter an attendance estimate\n';
	}
	 if (document.myform.r_address.value==''){
		// something else is wrong
		errorString += 'Please enter your campus address\n';
	}
	if(errorString!=''){
		alert(errorString);
		return false;
	}
	// If the script gets this far through all of your fields
	// without problems, it's ok and you can submit the form

	return true;
}

function displayHeader() { 



	document.title = document.title + ' | ' + cgisFileName;

	var secImg

//	secImg =  ((queryString("sec",location.search) != '') && (queryString("sec",location.search) != null)) ? queryString("sec",location.search) + "_off" : "c";

	secImg =  ((cgisFileName != '') && (cgisFileName != 'index')) ? transmogrify(cgisFileName) + "_title" : "c";

	var headHTML

	headHTML = "<div align='center' id='outerdiv'>"

	+ "<table border='0' cellpadding='0' cellspacing='0' width='100%'>"

	+ "<tr><td colspan='3' id='masthead'>"

	+ "<a href='" + imgPrefix + "index.html'><img src='" + imgPrefix + "images/masthead.gif' width='600' height='120' border='0' alt='Center for Government and International Studies, Harvard University' /></a>"

	+ "</td></tr><tr>"

	+ "<td width='1%' valign='top'><table cellpadding='0' cellspacing='0' width='100%'><tr><td valign='top' width='100%' class='nav2' nowrap='true'><img src='" + imgPrefix + "images/lightgray.gif' width='97' height='217' border='0' alt='' /><img src='" + imgPrefix + "images/ffffff.gif' width='3' height='217' border='0' alt='' /></td></tr></table></td>"

	+ "<td width='1%' valign='top' id='main'>"

	+ "	<table border='0' width='497' cellpadding='0' cellspacing='0'>"

	+ "<tr>"

	if (!isHomePage) {

		headHTML += "<td height='17' width='100%' id='sechead'><img src='" + imgPrefix + "images/" + secImg + ".gif' width='298' height='17' border='0' /></td>"

	} else {

		headHTML += "<img src='" + imgPrefix + "images/home_skylight.jpg' width='497' height='217' border='0' alt='skylight' />"

	}

	headHTML += "</tr></table>";

	w(headHTML);

	if (!isHomePage) { 

		w("<div id='pagecontent'>");

	} else {

		w("<div id='homepagecontent'>");

		w("<p class='homeblurb'>");

		w("<img src='" + imgPrefix + "images/this_weeks_events.gif' width='107' height='11' border='0' alt=\"This week's events\" /><br /><br />");

		w("<div class='cal_box_div'>");

	} 

	

}



function displayFooter() {



	var footHTML = "</td>"

	+ "<td width='98%' valign='top'>"

	+ "	<table width='100%' border='0' cellpadding='0' cellspacing='0' id='navtable'>";



	for (var i=0;i<navItemArray.length;i++) {

		footHTML += displayNavItem(navItemArray[i],'',2);

	}



	footHTML += "<tr><td class='nav' id='navempty'><img src='" + imgPrefix + "images/gray.gif' width='1' height='17' border='0' alt='' /></td></tr>"

		+ "<tr><td><img src='" + imgPrefix + "images/c.gif' width='1' height='3' alt='' border='0' /></td></tr>"

	footHTML += "<tr><td class='nav' id='navempty'><img src='" + imgPrefix + "images/gray.gif' width='1' height='17' border='0' alt='' /></td></tr>"

		+ "<tr><td><img src='" + imgPrefix + "images/c.gif' width='1' height='3' alt='' border='0' /></td></tr>"

	for (var i=0;i<navItemArray2.length;i++) {

		footHTML += displayNavItem(navItemArray2[i],2,'');

	}



	footHTML += "<tr><td class='nav2'><img src='" + imgPrefix + "images/lightgray.gif' width='1' height='17' border='0' alt='' /></td></tr>"

	+ "</table>"

	

	if (isHomePage) { 

		footHTML +=  "<p style='padding: 5px 0 0 10px;'><img src='" + imgPrefix + "images/overview.gif' width='51' height='11' border='0' alt='Overview' />"

			+ "<br /><br />"

			+ "The Center for Government and International Studies unites the Government Department, "

			+ "faculty of the History Department who have international research interests, and many of "

			+ "the thriving research centers in the Faculty of Arts and Sciences at Harvard. <!-- here -->The complex "

			+ "is designed to promote lively, interdisciplinary exchange among faculty, students, and "

			+ "visitors from around the world. "

//			+ "<a href='" + imgPrefix + "overview.html'>Read More</a> "

			+ "</p>"

	}



	footHTML += "</td></tr>"

	+ "<tr><td colspan='3'><img src='" + imgPrefix + "images/c.gif' width='1' height='20' border='0' alt='' /></td></tr>"

	+ "<tr>"

	+ "<td>&nbsp;</td>"

	+ "<td>&copy; 2005 <a href='" + imgPrefix + "index.html'>CGIS</a>, Harvard University</td>"

	+ "<td>&nbsp;</td>"

	+ "</tr></table>";

	 

	if (isHomePage) w("</p></div>");

	w('</div>');

	w(footHTML);

}



function transmogrify(item) { 

	item = item.toLowerCase();

	var rg = new RegExp(" ", "g");

	item = item.replace(rg, "_");	

	return item;

}



function displayNavItem(item,mode,onmode) {

//	alert(item);

	var imgName;

	var itemStr;

	var onClickStr = " onClick=\"var CalWin = window.open('monthly.html','CalWin','toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=800');CalWin.focus();return false;\" "

	imgName = transmogrify(item);

	itemStr = "<tr><td class='nav" + mode + "' onMouseOver=\"this.className='nav"+onmode+"';MM_swapImage('"+imgName+"','','" + imgPrefix + "images/"+imgName+"_on.gif',1);\" onMouseOut=\"this.className='nav"+mode+"';MM_swapImgRestore();\" "

	if (item == "Events") { 

		itemStr += onClickStr + ">"

	} else { 

		itemStr += " onClick='location=\"" + imgPrefix + imgName + ".html\";'>"

	}

	itemStr += "<div class='navdiv'><a "

	if (item == "Events") { itemStr += onClickStr } 

	itemStr += " href='" + imgPrefix + imgName + ".html'>"

	+ "<img src='" + imgPrefix + "images/" + imgName + "_off.gif' name='" + imgName + "' onMouseOut='MM_swapImgRestore();' onMouseOver=\"MM_swapImage('"+imgName+"','','" + imgPrefix + "images/"+imgName+"_on.gif',1);\" class='navimg' id='navimg"+imgName+"' width='298' height='17' border='0' alt='" + item + "' />"

	+ "</a>"

	+ "</div>"

	+ "</td></tr>"

	+ "<tr><td><img src='" + imgPrefix + "images/c.gif' width='1' height='3' alt='' border='0' /></td></tr>"

	return itemStr;

} 



function w(thetext) { 

	document.writeln(thetext);

}



var __gbl_qstr = stripQuery(this.location); 



function queryString(key, src) { 

  var __qstr = stripQuery(src); 

  var strIndex = __qstr.indexOf(key+'='); 

  if(strIndex == -1) return null; 

  var strReturn = '', ch = ''; 

 

  for(var i = strIndex + key.length; i < __qstr.length; i++) { 

    ch = __qstr.charAt(i); 

    if(ch == '&' || ch == ';') break; 

    if(ch == '+') strReturn += ' '; 

    else if(ch != '=') strReturn += ch; 

  } 

  return unescape(strReturn); 

} 



function stripQuery(src) { 

  if(src == null) return __gbl_qstr; 

 

  if(typeof src == 'string') { 

    var __qstr   = new String(); 

    var __tmpNum = src.indexOf('?'); 

     

    __qstr = (__tmpNum != -1) 

             ? src.substr( 

                 __tmpNum + 1, src.length 

               ) 

             : null; 

     

    delete __tmpNum; 

    return __qstr; 

  } 

  else if(typeof src == 'object') { // assumes the object is of type location 

    return location.search.substr(1, location.search.length); 

  } 

  else return __gbl_qstr; 

}



//img swap

function MM_findObj(n, d) { //v4.01

  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {

    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}

  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];

  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);

  if(!x && d.getElementById) x=d.getElementById(n); return x;

}

function MM_swapImage() { //v3.0

  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)

   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}

}

function MM_swapImgRestore() { //v3.0

  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;

}



function MM_preloadImages() { //v3.0

 var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();

   var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)

   if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}

}



//request form

var knafelRooms = new Array("", "N018 Computer Training", "N031 Tele-conference", "N051", "N107", "N108", "N109", "N106", "N252 Shklar", "N262 Bowie-Vernon", "N354", "N401", "N450");

var southRooms = new Array("", "S001", "S003", "S010 Lecture Hall", "S020 Case Study", "S030 Public Gathering", "S040", "S050", "S153", "S250", "S354", "S450");

var kirkland34Rooms = new Array("", "34 Kirkland");

var kirkland61Rooms = new Array("", "61 Kirkland");

var equipment = new Array("Video/data proj.", "Plasma/LCD screen", "Sound playback", "Microphone", "Region Free DVD", "Tri-Standard", "CD/Cassette", "Screen", "Simultaneous Translation", "Video conference", "PC", "Document camera", "Recording camera", "Student voting response", "Slide/digital converter", "Slide projector", "Assistive listening", "Seat count", "FAS Registrar Controlled"); 



//Video/data proj. 	Plasma/LCD screen	Sound playback	Microphone	Region Free DVD	Tri-Standard	CD/Cassette	Screen	Simultaneous Translation	Video conference	PC	Document camera	Recording camera	Student voting response	Slide/digital converter	Slide projector	Assistive listening	Seat count	FAS Registrar Controlled 

var N051 = new Array(1,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0);

var N031 = new Array(1,1,1,1,1,1,1,1,0,1,1,1,0,0,0,0,0);

var N018 = new Array(1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0);

var N106 = new Array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);

var N107 = new Array(0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0);

var N108 = new Array(0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0);

var N109 = new Array(0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0);

var N110 = new Array(0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0);

var N252 = new Array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);

var N262 = new Array(1,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0);

var N354 = new Array(1,0,1,1,1,1,1,1,0,1,1,1,0,0,0,0,0);

var N401 = new Array(1,0,1,0,1,1,1,1,0,0,0,0,0,0,0,0,0);

var N450 = new Array(1,0,1,0,1,1,1,1,0,0,0,0,0,0,0,0,0);



var S040 = new Array(1,0,1,0,1,1,1,1,0,0,0,0,0,0,0,0,0);

var S001 = new Array(1,0,1,0,1,1,1,1,0,0,0,0,0,0,0,0,0);

var S030 = new Array(1,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0);

var S003 = new Array(1,0,1,0,1,1,1,1,0,0,0,0,0,0,0,0,0);

var S050 = new Array(1,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0);

var S020 = new Array(1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1);

var S010 = new Array(1,0,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1);

var S153 = new Array(1,0,1,0,1,1,1,1,0,0,0,0,0,0,0,0,0);

var S250 = new Array(1,0,1,0,1,1,1,1,0,0,0,0,0,0,0,0,0);

var S350 = new Array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);

var S354 = new Array(1,0,1,0,1,1,1,1,0,0,0,0,0,0,0,0,0);

var S450 = new Array(1,0,1,0,1,1,1,1,0,0,0,0,0,0,0,0,0);



function set_room() {



	var select_building = document.myform.r_building;

	var select_room = document.myform.r_room;

	var selected_building = select_building.options[select_building.selectedIndex].value;



	select_room.options.length=0;

	if (selected_building == "Knafel Building"){

		for(var i=0; i<knafelRooms.length; i++)  

			select_room.options[select_room.options.length] = new Option(knafelRooms[i]);

		}



	if (selected_building == "South Building"){

		for(var i=0; i<southRooms.length; i++)

			select_room.options[select_room.options.length] = new Option(southRooms[i]);

		}



	if (selected_building == "34 Kirkland"){

		for(var i=0; i<kirkland34Rooms.length; i++)

			select_room.options[select_room.options.length] = new Option(kirkland34Rooms[i]);

		}



	if (selected_building == "61 Kirkland"){

		for(var i=0; i<kirkland61Rooms.length; i++)

			select_room.options[select_room.options.length] = new Option(kirkland61Rooms[i]);

		}

	}



function set_equipment(objValue) {



//	alert(objValue);

//	var select_room = document.myform.room;

	var select_equipment = document.myform.equipment;

//	var selected_room = select_room.options[select_room.selectedIndex].value;

	var ii = 0;

	select_equipment.options.length=0;

	select_equipment.className='show';



//knafel

	if (objValue == "N017 Computer Training") {

		for(var i=0; i<equipment.length; i++)

			if (N051[i] == 1) select_equipment.options[select_equipment.options.length] = new Option(equipment[i]); 

		}

	if (objValue == "N031 Tele-conference") {

		for(var i=0; i<equipment.length; i++)

			if (N031[i] == 1) select_equipment.options[select_equipment.options.length] = new Option(equipment[i]); 

		}

	if (objValue == "N051") {

		for(var i=0; i<equipment.length; i++)

			if (N051[i] == 1) select_equipment.options[select_equipment.options.length] = new Option(equipment[i]);

		}

	if (objValue == "N107") {

		for(var i=0; i<equipment.length; i++)

			if (N107[i] == 1) select_equipment.options[select_equipment.options.length] = new Option(equipment[i]);

		}

	if (objValue == "N108") {

		for(var i=0; i<equipment.length; i++)

			if (N108[i] == 1) select_equipment.options[select_equipment.options.length] = new Option(equipment[i]); 

		}

	if (objValue == "N109") {

		for(var i=0; i<equipment.length; i++)

			if (N109[i] == 1) select_equipment.options[select_equipment.options.length] = new Option(equipment[i]); 

		}

	if (objValue == "N106") {

		for(var i=0; i<equipment.length; i++)

			if (N106[i] == 1) select_equipment.options[select_equipment.options.length] = new Option(equipment[i]);

		}

	if (objValue == "N252 Shklar") {

		for(var i=0; i<equipment.length; i++)

			if (N252[i] == 1) select_equipment.options[select_equipment.options.length] = new Option(equipment[i]);

		}

	if (objValue == "N262 Bowie-Vernon") {

		for(var i=0; i<equipment.length; i++)

			if (N262[i] == 1) select_equipment.options[select_equipment.options.length] = new Option(equipment[i]);

		}

	if (objValue == "N354") {

		for(var i=0; i<equipment.length; i++)

			if (N354[i] == 1) select_equipment.options[select_equipment.options.length] = new Option(equipment[i]); 

		}

	if (objValue == "N401") {

		for(var i=0; i<equipment.length; i++)

			if (N401[i] == 1) select_equipment.options[select_equipment.options.length] = new Option(equipment[i]);

		}

	if (objValue == "N450") {

		for(var i=0; i<equipment.length; i++)

			if (N450[i] == 1) select_equipment.options[select_equipment.options.length] = new Option(equipment[i]);

		}



//south

	if (objValue == "S001") {

		for(var i=0; i<equipment.length; i++)

			if (S001[i] == 1) select_equipment.options[select_equipment.options.length] = new Option(equipment[i]);

		}

	if (objValue == "S003") {

		for(var i=0; i<equipment.length; i++)

			if (S003[i] == 1) select_equipment.options[select_equipment.options.length] = new Option(equipment[i]);

		}

	if (objValue == "S010 Lecture Hall") {

		for(var i=0; i<equipment.length; i++)

			if (S010[i] == 1) select_equipment.options[select_equipment.options.length] = new Option(equipment[i]);

		}

	if (objValue == "S020 Case Study") {

		for(var i=0; i<equipment.length; i++)

			if (S020[i] == 1) select_equipment.options[select_equipment.options.length] = new Option(equipment[i]);

		}

	if (objValue == "S030 Public Gathering") {

		for(var i=0; i<equipment.length; i++)

			if (S030[i] == 1) select_equipment.options[select_equipment.options.length] = new Option(equipment[i]);

		}

	if (objValue == "S040") {

		for(var i=0; i<equipment.length; i++)

			if (S040[i] == 1) select_equipment.options[select_equipment.options.length] = new Option(equipment[i]);

		}

	if (objValue == "S050") {

		for(var i=0; i<equipment.length; i++)

			if (S050[i] == 1) select_equipment.options[select_equipment.options.length] = new Option(equipment[i]);

		}

	if (objValue == "S153") {

		for(var i=0; i<equipment.length; i++)

			if (S153[i] == 1) select_equipment.options[select_equipment.options.length] = new Option(equipment[i]);

		}

	if (objValue == "S250") {

		for(var i=0; i<equipment.length; i++)

			if (S250[i] == 1) select_equipment.options[select_equipment.options.length] = new Option(equipment[i]);

		}

	if (objValue == "S354") {

		for(var i=0; i<equipment.length; i++)

			if (S354[i] == 1) select_equipment.options[select_equipment.options.length] = new Option(equipment[i]);

		}

	if (objValue == "S450") {

		for(var i=0; i<equipment.length; i++)

			if (S450[i] == 1) select_equipment.options[select_equipment.options.length] = new Option(equipment[i]);

		}



//	for(var i=0; i<equipment.length; i++)

//		select_equipment.options[select_equipment.options.length] = new Option(equipment[i]);

//	

//	ii = ii+1

//	alert('ii='+ii);

//	select_equipment.size=ii;

}



function validateForm() {

	var theform = document.forms['myform'];

	var errMsg = '';

	alert(theform.elements.length);

	for (var i=0; i < theform.elements.length; i++) {

		var tempobj = theform.elements[i]; 

		if (tempobj.name.substring(0,2) == 'r_') { 

			errMsg = errMsg + tempobj.title + ' is a required field.\n';

		}

	}

	if (errMsg != '') alert(errMsg);

}



// date picker

/******************************

OO-based DropdownDatePicker 

By: Glenn G. Vergara

glenngv@yahoo.com

Philippines



Please make this intact

if you want to use this script.

Thanks!

******************************/





function DropdownDatePicker(month, day, year, hasLeadingZero){

	var me = this;

	this.month = month;

	this.day = day;

	this.year = year;

	if (hasLeadingZero==null || typeof hasLeadingZero=="undefined") hasLeadingZero=false;

	this.hasLeadingZero = hasLeadingZero;

	this.setWeekend = false;

	

	this.populateDate = function(){

		var dSelYear = me.year.options[me.year.selectedIndex].value;

		var dSelMonth = me.month.options[me.month.selectedIndex].value;

		var timeA = new Date(dSelYear,dSelMonth,1); //get date of first day of next month

		var timeDifference = timeA - 86400000;//subtract 1 day

		var timeB = new Date(timeDifference);

		var daysInMonth = timeB.getDate();

		prevDaysInMonth = me.day.options.length;

		if (daysInMonth < prevDaysInMonth){	//current month's days < previous month's

			if (me.day.selectedIndex>=daysInMonth-1){

				me.day.selectedIndex = daysInMonth-1;	//select last day of the current month if previous month's selected day is > current month's

			}

			me.day.options.length = daysInMonth;

   		}

   		else if (daysInMonth > prevDaysInMonth){	//current month's days > previous month's

			var sDay;

			for (var i = prevDaysInMonth; i < (daysInMonth); i++) {

				sDay = ((i+1)<10 && me.hasLeadingZero)?"0"+(i+1):i+1;

				me.day.options[i] = new Option(sDay,sDay);

			}		

	    }

		if (me.setWeekend){

			me.setWeekendStyleOn(me.callbackOn);

		}

	}



	this.setDisplayMonths = function(mode, isUpperCase, arrMonth){

		switch (mode){

			case 1: //numeric months

				for (var i=0;i<12;i++){

					me.month.options[i] = new Option(((i+1)<10 && me.hasLeadingZero)?"0"+(i+1):i+1, i+1);

				}

				break;

			case 2: //full english month names

				var arrMonth = new Array("January","February","March","April","May","June","July","August","September","October","November","December");

				for (var i=0;i<arrMonth.length;i++){

//					me.month.options[i] = new Option((isUpperCase)?arrMonth[i].toUpperCase():arrMonth[i],i+1);

					me.month.options[i] = new Option(arrMonth[i],i+1);

				}

				break;

			case 3: //abbreviated english month names (first 3 letters)

				var arrMonth = new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");

				for (var i=0;i<arrMonth.length;i++){

					me.month.options[i] = new Option((isUpperCase)?arrMonth[i].toUpperCase():arrMonth[i],i+1);

				}

				break;

			case 4: //customized month names

				if (arrMonth==null || typeof arrMonth=="undefined"){ //default is full english month names if arrMonth is invalid

					var arrMonth = new Array("January","February","March","April","May","June","July","August","September","October","November","December");				

				}

				for (var i=0;i<arrMonth.length;i++){

					me.month.options[i] = new Option((isUpperCase)?arrMonth[i].toUpperCase():arrMonth[i],i+1);

				}

				break;

			default: //numeric months

				for (var i=0;i<12;i++){

					me.month.options[i] = new Option(((i+1)<10 && me.hasLeadingZero)?"0"+(i+1):i+1, i+1);

				}

		}		

	}



	this.setDisplayYears = function(fromYear, toYear){

		me.year.length=0;

		for (var i=fromYear;i<=toYear;i++){

			me.year.options[i-fromYear] = new Option(i,i);

		}

	}



	//set default date

	this.setDefaultDate = function(defaultDate){

		if (defaultDate==null || typeof defaultDate=="undefined" || isNaN(defaultDate)){

			defaultDate = new Date();

		}

		me.month.options[defaultDate.getMonth()].selected = true;		//select default month

		me.day.options[defaultDate.getDate()-1].selected = true;		//select default day

		//select default year

		for (var i=0;i<me.year.options.length;i++){

			if (me.year.options[i].value==defaultDate.getFullYear()){

				me.year.selectedIndex = i;

				break;

			}

		}

	}



	//set day as title (title attribute in select and option tags is currently supported only by Gecko)

	//no problem with other browsers as this will be ignored by them

	this.displayDay = function(arrDay){

		if (arrDay==null || typeof arrDay=="undefined"){

			var arrDay = new Array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday");

		}

		me.arrDay = arrDay;



		//set month select title

		me.month.onmouseover = function(){

			var selectedDate = new Date(me.year.options[me.year.selectedIndex].value, this.selectedIndex, me.day.options[me.day.selectedIndex].value);

			this.title = me.arrDay[selectedDate.getDay()];

		}

		//set month options title

		for (var i=0;i<me.month.options.length;i++){

			me.month.options[i].onmouseover = function(){

				var selectedDate = new Date(me.year.options[me.year.selectedIndex].value, this.value-1, me.day.options[me.day.selectedIndex].value);

				this.title = me.arrDay[selectedDate.getDay()];

			}

		}



		//set day select title

		me.day.onmouseover = function(){

			var selectedDate = new Date(me.year.options[me.year.selectedIndex].value, me.month.selectedIndex, this.options[this.selectedIndex].value);

			this.title = me.arrDay[selectedDate.getDay()];

		}

		//set day options title

		for (var i=0;i<me.day.options.length;i++){

			me.day.options[i].onmouseover = function(){

				var selectedDate = new Date(me.year.options[me.year.selectedIndex].value, me.month.selectedIndex, this.value);

				this.title = me.arrDay[selectedDate.getDay()];

			}

		}



		//set year select title

		me.year.onmouseover = function(){

			var selectedDate = new Date(me.year.options[me.year.selectedIndex].value, this.selectedIndex, me.day.options[me.day.selectedIndex].value);

			this.title = me.arrDay[selectedDate.getDay()];

		}

		//set year options title

		for (var i=0;i<me.year.options.length;i++){

			me.year.options[i].onmouseover = function(){

				var selectedDate = new Date(this.value, me.month.selectedIndex, me.day.options[me.day.selectedIndex].value);

				this.title = me.arrDay[selectedDate.getDay()];

			}



		}

	}



	this.setWeekendStyleOn = function(callbackFunc){

		me.callbackOn = callbackFunc;

		me.setWeekend = true;

		for (var i=0;i<me.day.options.length;i++){

			var date = new Date(me.year.options[me.year.selectedIndex].value, me.month.selectedIndex, i+1);

			var day = date.getDay();

			if (day==0 || day==6){

				me.callbackOn(me.day.options[i]);

			}

			else{

				me.callbackOff(me.day.options[i]);

			}



		}

	}



	this.setWeekendStyleOff = function(callbackFunc){

		me.callbackOff = callbackFunc;	

	}

		

	

	//set onchange handler

	var monthChange = this.month.onchange;

	if (monthChange){

		this.month.onchange = function(){

			me.populateDate();

			monthChange();

		}

	}

	else{

		this.month.onchange = this.populateDate;

	}

	var yearChange = this.year.onchange;

	if (yearChange){

		this.year.onchange = function(){

			me.populateDate();

			yearChange();

		}

	}

	else{

		this.year.onchange = this.populateDate;	

	}

	

}



//sample usage of datepicker

function initDatePicker(){

	var f = document.forms['myform'];

	var defaultDate = new Date();

	defaultDate.setDate(defaultDate.getDate()+1); //tomorrow

/*

	var datePicker1 = new DropdownDatePicker(f.month1, f.day1, f.year1, true);

	datePicker1.setDisplayMonths(1);

	datePicker1.setDisplayYears(2003, 2010);

	datePicker1.setDefaultDate(defaultDate);//set default date to tomorrow's date

*/
/*
	var today = new Date();

	var datePicker2 = new DropdownDatePicker(f.r_month2, f.r_day2, f.r_year2);

	datePicker2.setDisplayMonths(2,true);

	datePicker2.setDisplayYears(today.getFullYear(), today.getFullYear()+10);

	datePicker2.setDefaultDate(today); //set default date to today's date

	datePicker2.displayDay();
*/
//	datePicker2.setWeekendStyleOff(resetStyleWeekend);//must be set first before setWeekendStyleOn()

//	datePicker2.setWeekendStyleOn(setStyleWeekend);



/*	var arrMonthNameTagalog = new Array("Enero","Pebrero","Marso","Abril","Mayo","Hunyo","Hulyo","Agosto","Setyembre","Oktubre","Nobyembre","Disyembre");

	var datePicker3 = new DropdownDatePicker(f.month3, f.day3, f.year3);

	datePicker3.setDisplayMonths(4,false,arrMonthNameTagalog);

	datePicker3.setDisplayYears(today.getFullYear(), today.getFullYear()+1);

	datePicker3.setDefaultDate(today); //set default date to today's date

	datePicker3.displayDay(new Array("Linggo","Lunes","Martes","Miyerkules","Huwebes","Biyernes","Sabado"));

*/

}



//callback functions for setting option style for weekend

//must have one argument that refers to the option object



function setStyleWeekend(objOpt){

	if (objOpt && objOpt.style){

		objOpt.style.backgroundColor = "silver";

	}

}



function resetStyleWeekend(objOpt){

	if (objOpt && objOpt.style){

		objOpt.style.backgroundColor = "white";

	}

}

