<!--//
//alert('Loading datepicker...');
///////////////////////////////////////////////////////////////////////////////////////////
// NAME:
// MODIFICATION HISTORY:
//	03/31/2003	mtb Moving most global variables into the setCalendar function
///////////////////////////////////////////////////////////////////////////////////////////






var calHTML; // keep as global
//var pDate;
var curMonthText; // keep as global
var rowCount; // keep as global

var nextMonth; // keep as global
var prevMonth; // keep as global
var retControl; // keep as global

var iPass = 0;
var dCurrentTop = 0;

///////////////////////////////////////////////////////////////////////////////////////////
// NAME:
///////////////////////////////////////////////////////////////////////////////////////////
function setCalendar(sCtlName, datDate, strTodayColor, strSelectedColor, strDefaultColor){
	var strTodayColorSetting, 	strSelectedColorSetting, 	strDefaultColorSetting
	var curDate = new Date();
	var TODAY_COLOR = 'ffa600' ; // orange
	var SELECTED_COLOR = '0000ff'; // blue
	var DEFAULT_COLOR = 'faf0e6';
	
	//var daysCount;
	//var lastDay;
	//var firstDay;
	
	//var i;
	//var topC;
	//var leftC;

	//var tempDate;
	//var curMonth;
	//var curYear;
	
	iPass = 0;
	dCurrentTop = 0;
	rowCount = 0;
	
	if(strTodayColor == null) strTodayColorSetting = TODAY_COLOR; else  strTodayColorSetting = strTodayColor;
	if(strSelectedColor == null) strSelectedColorSetting = SELECTED_COLOR; else  strSelectedColorSetting = strSelectedColor;
	if(strDefaultColor == null) strDefaultColorSetting = DEFAULT_COLOR; else  strDefaultColorSetting = strDefaultColor;
	
	//alert('In setCalendar ');
	retControl = sCtlName;
	//alert('retControl = ' + retControl);
	calHTML = '';
	var datNow = new Date();	
	datNow.getDate();
	//alert('datNow = ' + datNow);
	//datNow = datNow.format('mm/dd/yyyy');
	
	// We shouldn't need to test if the value is a date object
	// just test when
	
	//curDate = new Date(datDate);
	//If IsDate(curDate) Then pDate = FormatDateTime(curDate, 0)
	//If curDate = "" Then 
	//    curDate = Now()
	//Else
	//    If IsDate(curDate) Then curDate = Month(curDate) & "/" & Day(curDate) & "/" & Year(curDate)
	//End If
	//If IsDate(curDate) Then
	
	
	//alert('here');
	if (datDate == null)
		curDate.getDate();
	else
		curDate = new Date(datDate); // datDate.format('mm/dd/yyyy'); //If IsDate(curDate) Then curDate = Month(curDate) & "/" & Day(curDate) & "/" & Year(curDate)
	//alert('curDate = ' + curDate);
	//alert('Month = ' + curDate.format('month'));
	//alert('Year = ' + curDate.getYear());
	//alert('Full string  = ' + curDate.format('month') + "-" + curDate.getYear());	
	var curMonth = curDate.getMonth(); //Month(curDate)
	
	curMonthText = curDate.format('month') + "-" + curDate.getYear(); // TextMonth(curMonth) & "-" & Year(curDate)
	var curYear = curDate.getYear(); // Year(curDate)
	var firstDay = new Date(curDate); // curDate.format('mm/dd/yyyy'); //curMonth & "/" & "01" & "/" & curYear
	
	//alert('curMonth = ' + curMonth);
	//alert('curMonthText = ' + curMonthText);
	//alert('curYear = ' + curYear);
	//alert('firstDay = ' + firstDay);
	 
	  
	//dateAdd(startDate, numDays, numMonths, numYears)
	
	// Changing this first day to the first day of the month
	firstDay = new Date(curDate.getYear(), curDate.getMonth(),1);
	
	var firstDayNextMonth = new Date(dateAdd(firstDay,0, 1,0));
	var firstDayFormatted  =firstDay.format('mmm/dd/yyyy');
	var firstNextMonthFormatted = firstDayNextMonth.format('mmm/dd/yyyy')
	//alert('firstDayNextMonth = ' + firstDayNextMonth);
	//lastDay = dateAdd(dateAdd(firstDay,0, 1,0), -1,0,0 ); //DateAdd("d", -1, DateAdd("m", 1, firstDay))
	var lastDay = dateAdd(firstDay,dateDiff(firstDayFormatted,firstNextMonthFormatted,'d',0),0,0); //DateAdd("d", -1, DateAdd("m", 1, firstDay))	
	//alert('lastDay = ' + lastDay );
	//var nextMonthDate = new Date(dateAdd(firstDay,0, 1,0 ));
	//nextMonth  = '';
	
	//nextMonth = dateAdd(firstDay,0, 1,0 ); //DateAdd("m", 1, firstDay)
	//alert('nextMonthDate = ' + nextMonthDate.format('mmm/dd/yyyy')); 
	//nextMonth += nextMonthDate.format('mmm/dd/yyyy');// + "&ctl=" + retControl; //FormatDateTime(Month(nextMonth) & "/" & Day(curDate) & "/" & Year(nextMonth), 0) & "&ctl=" & retControl
	nextMonth = new Date(dateAdd(firstDay,0, 1,0 ));
	prevMonth = new Date(dateAdd(firstDay,0, -1,0 ));  //DateAdd("m", -1, firstDay)
	
	//prevMonth += "&ctl=" + retControl; // FormatDateTime(Month(prevMonth) & "/" & Day(curDate) & "/" & Year(prevMonth), 0) & "&ctl=" & retControl
	
	//daysCount = lastDay.getDay(); // CInt(Day(lastDay))
	var daysCount = dateDiff(firstDay, lastDay,'d',0 ); // CInt(Day(lastDay))

	 /*
	alert('firstDay = ' + firstDay + '\n' +
		'firstDay (F) = ' + firstDay.format('mmm/dd/yyyy') + '\n' +
		'firstDayNextMonth = ' + firstDayNextMonth + '\n' +
		'firstDayNextMonth (F)= ' + firstDayNextMonth.format('mmm/dd/yyyy') + '\n' +
		'lastDay = ' + lastDay + '\n' +
		'nextMonth = ' + nextMonth + '\n' +
		'prevMonth = ' + prevMonth + '\n' +
		'daysCount = ' + daysCount + '\n' +
		'datNow = ' + datNow + '\n' +
		'curDate = ' + curDate);
	 */
	//alert('Now = ' + datNow.format('mmm/dd/yyyy'));
	for (var i = 1; i <= daysCount; i++) {
		var tempDate = new Date(curDate.getYear(),curDate.getMonth(),i);  //curMonth & "/" & i & "/" & curYear
		//alert('tempDate = ' + tempDate);
		var leftC = calcLeft(tempDate.getDay()); //calcLeft(DatePart("w", tempDate, vbMonday))
		var topC = calcTop(tempDate)
		// Changing default width (50px) to smaller
		calHTML +=  "<DIV style='text-align: center; position: absolute; width: 30px; left: ";
		calHTML +=  leftC + "px; top: " + topC + "px; font-family: Tahoma, Arial; cursor: hand; ";
		
		
		if (tempDate.format('mmm/dd/yyyy') == datNow.format('mmm/dd/yyyy')){
			// Format today's date
			calHTML += "background-color: #" + strTodayColorSetting + "; color: white";
		}else{
			// Format others
			calHTML += "background-color: #" + strDefaultColorSetting + "; color: black";
		}
		
		if (tempDate.format('mmm/dd/yyyy') == curDate.format('mmm/dd/yyyy')) {
			// Format the selected date
			//alert('curDate.format(mmm/dd/yyyy) = ' + curDate.format('mmm/dd/yyyy'));
			calHTML += "; border: solid #" + strSelectedColorSetting + " 1px";
		}
		calHTML += "' onClick=\"onDateSelected('";
		calHTML += tempDate.format('mmm/dd/yyyy'); // fNumber(Month(tempDate)) & "/" & fNumber(Day(tempDate)) & "/" & Year(tempDate);
		calHTML += "')\">" + tempDate.format('dd') + "</DIV>\n" ;
	}
	//End If
}
///////////////////////////////////////////////////////////////////////////////////////////
// NAME:
///////////////////////////////////////////////////////////////////////////////////////////
function fNumber(fNum){
    if(fNum.length < 2){ 
        return "0" + fNum.toString();
    }else{
        return fNum.toString();
    }
}
///////////////////////////////////////////////////////////////////////////////////////////
// NAME:
///////////////////////////////////////////////////////////////////////////////////////////
function calcLeft(wDay){
    // Default size
	//return ((wDay - 1) * 50) + 2 - (-50); // add -110 value to shift to edge
	// Attempting to make smaller
	return ((wDay - 1) * 30) + 2 - (-30); // add -110 value to shift to edge	

	//return ((wDay - 1) ) + 2
}
///////////////////////////////////////////////////////////////////////////////////////////
// NAME:
///////////////////////////////////////////////////////////////////////////////////////////
function calcTop(wDate){
    
    //var mStartDate;
    //var mStartWeekDay;
    //var dRow;
	//var dRetVal;
	var blnRowChange = false;
	var TOP_COORDINATE = 5;
	
	var mStartDate =new Date(wDate.getYear(),wDate.getMonth(), 1 ); // ; new Date(wDate); //wDate.getMonth() & "/" & "01/" & wDate.getYear();
	var mStartWeekDay = mStartDate.getDay() - 1; //DatePart("w", mStartDate, vbMonday)
	//dRow = ((mStartWeekDay + CInt(DateDiff("d", mStartDate, wDate))) \ 7) + 1
	//dRow = ((mStartWeekDay + dateDiff(mStartDate, wDate,'d',0 )) \ 7) + 1;
	//dRow = Math.round(((mStartWeekDay + dateDiff(mStartDate, wDate,'d',0 )) / 7)) ;//+ 1
	//dRow = Math.ceil(((mStartWeekDay + dateDiff(mStartDate, wDate,'d',0 )) / 7)) ;//+ 1
	var dRow = ((mStartWeekDay + Math.round(dateDiff(mStartDate, wDate,'d',0 ),0)) / 7);// + 1
	
	// skipping this to do sun - mon calendar
	//if (wDate.getDay() == 7 ) dRow = dRow - 1; //if (Weekday(wDate, vbMonday) == 7 ) dRow = dRow - 1;
	//dRetVal = ((dRow - 1 ) * 20) + 1 + TOP_COORDINATE;
	if (wDate.getDay() == 0 ){
		 dRow +=  1;
		 blnRowChange = true;
	}
	
	
	var dRetVal = ((dRow - 1) * 20) + 1 + TOP_COORDINATE;
	//dRetVal = ((dRow - 1 ) * 20) + 1 + TOP_COORDINATE;
	if((dCurrentTop == 0)||(blnRowChange)) {
		if(dCurrentTop == 0)
			dCurrentTop = dCurrentTop + TOP_COORDINATE; //dRetVal;
		else
			dCurrentTop = dCurrentTop + 22; //dRetVal;
	}
	
	
	if (dRow > rowCount ) {
		rowCount = dRow;
		
	}
	
	if(iPass < 0) 
		alert('wDate = ' + wDate + '\n' +
		  		'mStartDate = ' + mStartDate + '\n' +
		  		'mStartWeekDay = ' + mStartWeekDay + '\n' +
				'wDate.getDay() = ' + wDate.getDay() + '\n' +
		  		'dRow = ' + dRow + '\n' +
		  		'dRetVal = ' + dRetVal + '\n' +
				'dCurrentTop = ' + dCurrentTop + '\n' +
				'dateDiff(mStartDate, wDate,d,0 ) = ' + dateDiff(mStartDate, wDate,'d',0 ) + '\n' +
				'mStartWeekDay + dateDiff(mStartDate, wDate,d,0 ) = ' + mStartWeekDay + dateDiff(mStartDate, wDate,'d',0 ) + '\n' +
				'((mStartWeekDay + dateDiff(mStartDate, wDate,d,0 )) / 7 = ' + (mStartWeekDay + dateDiff(mStartDate, wDate,'d',0 )) / 7 + '\n' +
				'Math.ceil(...) = ' + Math.ceil(((mStartWeekDay + dateDiff(mStartDate, wDate,'d',0 )) / 7)) + '\n' +
				'rowCount = ' + rowCount);
	
	iPass++;
	return dCurrentTop; //dRetVal;
}
///////////////////////////////////////////////////////////////////////////////////////////
// NAME:
///////////////////////////////////////////////////////////////////////////////////////////
function textMonth(dMonth){
	// Actually this function is not necessary since we can use getMonth()
	// but I will leave it here for reference
	var sMonth = '';
    switch(dMonth)
	{
        case 1: 
			sMonth = "January"
			break;
        case 2: 
			sMonth = "February"
			break;
        case 3: 
			sMonth = "March"
			break;        
		case 4: 
			sMonth = "April"
			break;        
		case 5: 
			sMonth = "May"
			break;        
		case 6: 
			sMonth = "June"
			break;        
		case 7: 
			sMonth = "July"
			break;        
		case 8: 
			sMonth = "August"
			break;        
		case 9: 
			sMonth = "September"
			break;        
		case 10: 
			sMonth = "October"
			break;        
		case 11: 
			sMonth = "November"
			break;        
		case 12: 
			sMonth = "December"
			break;
   }
   return sMonth;
}
///////////////////////////////////////////////////////////////////////////////////////////
// NAME:
///////////////////////////////////////////////////////////////////////////////////////////
// Code snippet from:
//http://www.flws.com.au/showusyourcode/codeLib/code/js_DateDiff.asp?catID=2
// rename from company library naming convention
// removing alerts (in final version)
function dateDiff( start, end, interval, rounding ) {

    var iOut = 0;
    
	/*
	alert(
		'start = ' + start + '\n' +
		'end = ' + end + '\n' 
		);
	*/
    // Create 2 error messages, 1 for each argument. 
    var startMsg = "Check the Start Date and End Date\n"
        startMsg += "must be a valid date format.\n\n"
        startMsg += "Please try again." ;
		
    var intervalMsg = "Sorry the dateAdd function only accepts\n"
        intervalMsg += "d, h, m OR s intervals.\n\n"
        intervalMsg += "Please try again." ;

    var bufferA = Date.parse( start ) ;
    var bufferB = Date.parse( end ) ;
    	
    // check that the start parameter is a valid Date. 
    if ( isNaN (bufferA) || isNaN (bufferB) ) {
        alert( startMsg ) ;
        return null ;
    }
	
    // check that an interval parameter was not numeric. 
    if ( interval.charAt == 'undefined' ) {
        // the user specified an incorrect interval, handle the error. 
        alert( intervalMsg ) ;
        return null ;
    }
    
    var number = bufferB-bufferA ;
    
    // what kind of add to do? 
    switch (interval.charAt(0))
    {
        case 'd': case 'D': 
            iOut = parseInt(number / 86400000) ;
            if(rounding) iOut += parseInt((number % 86400000)/43200001) ;
            break ;
        case 'h': case 'H':
            iOut = parseInt(number / 3600000 ) ;
            if(rounding) iOut += parseInt((number % 3600000)/1800001) ;
            break ;
        case 'm': case 'M':
            iOut = parseInt(number / 60000 ) ;
            if(rounding) iOut += parseInt((number % 60000)/30001) ;
            break ;
        case 's': case 'S':
            iOut = parseInt(number / 1000 ) ;
            if(rounding) iOut += parseInt((number % 1000)/501) ;
            break ;
        default:
        // If we get to here then the interval parameter
        // didn't meet the d,h,m,s criteria.  Handle
        // the error. 		
        alert(intervalMsg) ;
        return null ;
    }
    
    return iOut ;
}
///////////////////////////////////////////////////////////////////////////////////////////
// NAME:
///////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
// Code snippets from http://row14.com/forums/devforum/posts/136.html
// Has an lower version renamed (_A) and an "advanced" version
function y2k_A(number) { 
	return (number < 1000) ? number + 1900 : number; 
}
///////////////////////////////////////////////////////////////////////////////////////////
// NAME:
///////////////////////////////////////////////////////////////////////////////////////////
function showWeek_A() { 
	var today = new Date(year,month,day); 
	var year = y2k(today.getYear()); 
	var month = today.getMonth(); 
	var day = today.getDate();
	return 'data/week' + getWeek(year,month,day) + '.htm'; 
}
///////////////////////////////////////////////////////////////////////////////////////////
// NAME:
///////////////////////////////////////////////////////////////////////////////////////////
function getWeek_A(year,month,day) { 
	when = new Date(year,month,day); 
	var newYear = new Date(year,0,1); 
	var offset = 7 + 1 - newYear.getDay(); 
	if (offset== 8) offset = 1; 
	var daynum = ((Date.UTC(year,when.getMonth(),today.getDate(),0,0,0)
		- Date.UTC(when,0,1,0,0,0)) /1000/60/60/24) + 1; 
	var weeknum = Math.floor((daynum-offset+7)/7);
	if (weeknum == 0) { 
		year--; 
		var prevNewYear = new Date(year,0,1); 
		var prevOffset= 7 + 1 - prevNewYear.getDay(); 
		if (prevOffset == 8) prevOffset = 1; 
		if (prevOffset== 1) 
			weeknum = 53; 
		else 
			weeknum = 52; 
	} 
	return weeknum; 
} 
///////////////////////////////////////////////////////////////////////////////////////////
// NAME:
///////////////////////////////////////////////////////////////////////////////////////////
function y2k(number) { 
	return (number < 1000) ? number + 1900 : number; 
}
///////////////////////////////////////////////////////////////////////////////////////////
// NAME:
///////////////////////////////////////////////////////////////////////////////////////////
function showWeek() { 
	var today = new Date(); 
	var year = y2k(today.getYear()); 
	var month = today.getMonth(); 
	var day = today.getDate();
	return 'data/week' + getWeek(year,month,day) + '.htm'; 
}
///////////////////////////////////////////////////////////////////////////////////////////
// NAME:
///////////////////////////////////////////////////////////////////////////////////////////
function selectWeek(object) { 
	var today = new Date(); // Was missing this semicolon
	var year = y2k(today.getYear()); 
	var month = object.month.options[object.month.selectedIndex].value - 1; 
	var day = object.day.options[object.day.selectedIndex].text; 
	if (isDate(year,month,day))
		window.location.href = 'data/week' + getWeek(year,month,day) + '.htm'; 
	else
		alert('Invalid date combination -- please recheck the date and try again'); 
}
///////////////////////////////////////////////////////////////////////////////////////////
// NAME:
///////////////////////////////////////////////////////////////////////////////////////////
function isDate (year,month,day) { 
	var test = new Date(year,month,day); 
	if ((y2k(test.getYear()) == year) && 
		(month == test.getMonth()) &&
		(day == test.getDate())) 
		return true; 
	else 
		return false;  // Was missing this semicolon
}
///////////////////////////////////////////////////////////////////////////////////////////
// NAME:
///////////////////////////////////////////////////////////////////////////////////////////
function getWeek(year,month,day) { 
	var when = new Date(year,month,day); 
	var newYear = new Date(year,0,1); 
	var offset = 7 + 1 - newYear.getDay(); 
	if (offset== 8) offset = 1; 
	var daynum = ((Date.UTC(year,when.getMonth(),when.getDate(),0,0,0)
		- Date.UTC(year,0,1,0,0,0)) /1000/60/60/24) + 1; 
	var weeknum = Math.floor((daynum-offset+7)/7);
	if (weeknum == 0) { 
		year--; 
		var prevNewYear = new Date(year,0,1); 
		var prevOffset = 7 + 1 - prevNewYear.getDay(); 
		if (prevOffset == 8) prevOffset = 1; 
		if (prevOffset == 1) 
			weeknum = 53; 		
		else 
			weeknum = 52; 
		} 
	return weeknum; 
}
///////////////////////////////////////////////////////////////////////////////////////////
// NAME:
///////////////////////////////////////////////////////////////////////////////////////////
//This file retrieved from the JS-Examples archives
//http://www.js-examples.com
//1000s of free ready to use scripts, tutorials, forums.
//Author: JS-Examples - http://www.js-examples.com/ 

Date.prototype.Months = ["January", "February", "March",
                         "April", "May", "June", "July",
                         "August", "September", "October",
                         "November", "December"];
Date.prototype.Days = ["Sunday", "Monday", "Tuesday",
                       "Wednesday", "Thursday",
                       "Friday", "Saturday"];
Date.prototype.format = dateFormat;

///////////////////////////////////////////////////////////////////////////////////////////
// NAME:
///////////////////////////////////////////////////////////////////////////////////////////
function dateFormat(format) {
   var dateString = format;   //yyyy  is a 4-digit year - i.e., 2002 
   dateString = dateString.replace( new RegExp("yyyy", "gi"), this.getYear() );
  //yy    is a 2-digit year - i.e., 02
   dateString = dateString.replace( new RegExp("yy", "gi"), new String( this.getYear() ).substring(2,4) );
  //month is the full month - i.e., September
   dateString = dateString.replace( new RegExp("month", "gi"), this.Months[this.getMonth()] );
  //mon   is the first three letters of the month - i.e., Sep
   dateString = dateString.replace( new RegExp("mon", "gi"), new String( this.Months[this.getMonth()] ).substring(0,3) );
  //mmm   is the number of the month - i.e., 9
   dateString = dateString.replace( new RegExp("mmm", "gi"), (this.getMonth() + 1) );  
  //hh    is hours - i.e., 3
   dateString = dateString.replace( new RegExp("hh", "gi"), this.getHours() );
  //mm    is minutes (always 2-digit) - i.e., 05
   var mm = new String( this.getMinutes() );
   if (mm.length == 1) mm = "0" + mm;//pad if single digit
   dateString = dateString.replace( new RegExp("mm", "gi"), mm );
  //ss    is seconds (always 2-digit) - i.e., 08
   var ss = new String( this.getSeconds() );
   if (ss.length == 1) ss = "0" + mm;//pad if single digit
   dateString = dateString.replace( new RegExp("ss", "gi"), ss );
  //ddd   is the first three letters of the day - i.e., Wed
   dateString = dateString.replace( new RegExp("ddd", "gi"), new String( this.Days[this.getDay()] ).substring(0,3) );
  //dd    is the numerical day of the month - i.e, 25
   dateString = dateString.replace( new RegExp("dd", "gi"), this.getDate() );
  //day   is the full day of the week - i.e., Wednesday
   dateString = dateString.replace( new RegExp("day", "gi"), this.Days[this.getDay()] );   //timezone is the the timezone in hours from GMT - i.e., GMT+5
   tz = this.getTimezoneOffset();
   timezone = "";
   if (tz < 0)
      timezone = "GMT-" +  tz / 60;
   else if (tz == 0)
      timezone = "GMT";
   else
      timezone = "GMT+" + tz / 60;
   dateString = dateString.replace( new RegExp("timezone", "gi"), timezone );
  
  //time24   is the time based on a 24 hour clock - i.e., 18:24  
   var minutes = new String( this.getMinutes() );
   if (minutes.length == 1) minutes = "0" + minutes;//pad if single digit
   var time24 = new String( this.getHours() + ":" + minutes );
   dateString = dateString.replace( new RegExp("time24", "gi"), time24 );
  
  //time     is the time based on am/pm - i.e., 6:24PM
   var time;
   var ampm;
   var hour = this.getHours();
   if ( hour < 12) {
      if (hour == 0) hour = 12;
         ampm = "AM"
   } else {
      if (hour !=12)
         hour = hour - 12;
      ampm = "PM";  
   }
   time = new String(hour + ":" + minutes + ampm);    
   dateString = dateString.replace( new RegExp("time", "gi"), time );    return dateString;  
} 

///////////////////////////////////////////////////////////////////////////////////////////
// NAME:
///////////////////////////////////////////////////////////////////////////////////////////
// Code snippet from
//http://javascript.about.com/library/scripts/bldatemath.htm


function dateAdd(startDate, numDays, numMonths, numYears)
{
	var returnDate = new Date(startDate.getTime());
	var yearsToAdd = numYears;
	
	var month = returnDate.getMonth()	+ numMonths;
	if (month > 11)
	{
		yearsToAdd = Math.floor((month+1)/12);
		month -= 12*yearsToAdd;
		yearsToAdd += numYears;
	}
	returnDate.setMonth(month);
	returnDate.setFullYear(returnDate.getFullYear()	+ yearsToAdd);
	
	returnDate.setTime(returnDate.getTime()+60000*60*24*numDays);
	
	return returnDate;

}
///////////////////////////////////////////////////////////////////////////////////////////
// NAME:
///////////////////////////////////////////////////////////////////////////////////////////
function yearAdd(startDate, numYears)
{
		return DateAdd(startDate,0,0,numYears);
}
///////////////////////////////////////////////////////////////////////////////////////////
// NAME:
///////////////////////////////////////////////////////////////////////////////////////////
function monthAdd(startDate, numMonths)
{
		return DateAdd(startDate,0,numMonths,0);
}
///////////////////////////////////////////////////////////////////////////////////////////
// NAME:
///////////////////////////////////////////////////////////////////////////////////////////
function dayAdd(startDate, numDays)
{
		return DateAdd(startDate,numDays,0,0);
}

// Example Setup
var gCurrentDate = new Date();

///////////////////////////////////////////////////////////////////////////////////////////
// NAME:
///////////////////////////////////////////////////////////////////////////////////////////
function calcExample()
{
	var newDate = dateAdd(gCurrentDate, parseInt(document.example.days.value,10), 
						parseInt(document.example.months.value,10), 
						parseInt(document.example.years.value,10));
	document.example.results.value = newDate.toLocaleString();
}
///////////////////////////////////////////////////////////////////////////////////////////
// NAME:
// 10/23/2008	mtb	Revised this to remove document all so may need check that it still works.
//					Some correction needed by now working.
///////////////////////////////////////////////////////////////////////////////////////////
function onDateSelected(lDate) {
	//alert("document.getElementsByName(\"" + $('hostCtl').value.replace('[','\")[')  );	
	var cObj = eval("document.getElementsByName(\"" + $('hostCtl').value.replace('[','\")[') );		
	if (cObj != null) { // Was written Null (capital N)
		cObj.value = lDate;
		cObj.focus();
		hide('DatePicker');
	}else{
		alert('The host control object is null');
	}
	
}	
function closeDatePicker() {
	hide('DatePicker');
}	
///////////////////////////////////////////////////////////////////////////////////////////
// NAME:
/////////////////////////////////////////////////////////////////////////////////////////// 
function setupPage(){
	//alert('calHTML = ' + calHTML);
	//alert('curMonthText = ' + curMonthText);
 	$('Calendar').innerHTML=calHTML;
	$('MonthText').innerHTML=curMonthText;
	$('calRows').value = rowCount;
	$('hostCtl').value = retControl;
	$('prevMonth').value = prevMonth.format('mmm/dd/yyyy');
	$('nextMonth').value = nextMonth.format('mmm/dd/yyyy');
}
function showDatePicker(strHostCtrlName,e, strTodayColor, strSelectedColor, strDefaultColor){
	//alert('calling init setCalendar');
	//alert('strHostCtrlName =  ' + strHostCtrlName);
	//setCalendar('HOST', new Date('03/25/2003'));
	setCalendar(strHostCtrlName, new Date(),strTodayColor, strSelectedColor, strDefaultColor);
	//alert('calling init setupPage');
	setupPage();
	show('DatePicker',e);
}
function show(object,e) {
    if (e != '') {
        if (document.layers) {
            x = e.pageX;
            y = e.pageY;
        }
		else {
            x = e.clientX;
            y = e.clientY;
        }
       
    }

    if (document.layers && document.layers[object] != null) {
        document.layers[object].left = x;
        document.layers[object].top = y;
    }
    else {
        document.getElementById(object).style.posLeft = x;
        document.getElementById(object).style.posTop = y;
    }

    if (document.layers && document.layers[object] != null)
        document.layers[object].visibility = 'visible';
    else 
		document.getElementById(object).style.visibility = 'visible';
}

function hide(object) {
    if (document.layers && document.layers[object] != null)
        document.layers[object].visibility = 'hidden';
    else 
		document.getElementById(object).style.visibility = 'hidden';
}

//-->

