
var txtControl = ""
var dtCh= "/"; var minYear=1900; var maxYear=2100; function isInteger(s){ var i; for (i = 0; i < s.length; i++){ var c = s.charAt(i); if (((c < "0") || (c > "9"))) return false;}
return true;}
function stripCharsInBag(s, bag){ var i; var returnString = ""; for (i = 0; i < s.length; i++){ var c = s.charAt(i); if (bag.indexOf(c) == -1) returnString += c;}
return returnString;}
function daysInFebruary (year){ return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );}
function DaysArray(n) { for (var i = 1; i <= n; i++) { this[i] = 31; if (i==4 || i==6 || i==9 || i==11) {this[i] = 30;}
if (i==2) {this[i] = 29;}
}
return this;}
function isDate(dtStr){ var daysInMonth = DaysArray(12); var pos1=dtStr.indexOf(dtCh); var pos2=dtStr.indexOf(dtCh,pos1+1); var strDay=dtStr.substring(0,pos1); var strMonth=dtStr.substring(pos1+1,pos2); var strYear=dtStr.substring(pos2+1); strYr=strYear; if (strDay.charAt(0)=="0" && strDay.length>1)
{ strDay=strDay.substring(1);}
if (strMonth.charAt(0)=="0" && strMonth.length>1)
{ strMonth=strMonth.substring(1);}
for (var i = 1; i <= 3; i++) { if (strYr.charAt(0)=="0" && strYr.length>1)
{ strYr=strYr.substring(1);}
}
month=parseInt(strMonth); day=parseInt(strDay); year=parseInt(strYr); if (pos1==-1 || pos2==-1){ return false;}
if (strMonth.length<1 || month<1 || month>12){ return false;}
if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){ return false;}
if (strYear.length != 4 || year==0 || year<minYear || year>maxYear){ return false;}
if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false){ return false;}
return true;}
function positionInfo(object)
{ var p_elm = object; this.getElementLeft = getElementLeft; function getElementLeft()
{ var x = 0; var elm; if(typeof(p_elm) == "object")
{ elm = p_elm;}
else
{ elm = document.getElementById(p_elm);}
while (elm != null)
{ x+= elm.offsetLeft; elm = elm.offsetParent;}
return parseInt(x);}
this.getElementWidth = getElementWidth; function getElementWidth()
{ var elm; if(typeof(p_elm) == "object")
{ elm = p_elm;}
else
{ elm = document.getElementById(p_elm);}
return parseInt(elm.offsetWidth);}
this.getElementRight = getElementRight; function getElementRight()
{ return getElementLeft(p_elm) + getElementWidth(p_elm);}
this.getElementTop = getElementTop; function getElementTop()
{ var y = 0; var elm; if(typeof(p_elm) == "object")
{ elm = p_elm;}
else
{ elm = document.getElementById(p_elm);}
while (elm != null)
{ y+= elm.offsetTop; elm = elm.offsetParent;}
return parseInt(y);}
this.getElementHeight = getElementHeight; function getElementHeight()
{ var elm; if(typeof(p_elm) == "object")
{ elm = p_elm;}
else
{ elm = document.getElementById(p_elm);}
return parseInt(elm.offsetHeight);}
this.getElementBottom = getElementBottom; function getElementBottom()
{ return getElementTop(p_elm) + getElementHeight(p_elm);}
}
function CalendarControl() { var calendarId = 'CalendarControl'; var currentYear = 0; var currentMonth = 0; var currentDay = 0; var selectedYear = 0; var selectedMonth = 0; var selectedDay = 0; var months = ['January','February','March','April','May','June','July','August','September','October','November','December']; var dateField = null; function getProperty(p_property){ var p_elm = calendarId; var elm = null; if(typeof(p_elm) == "object"){ elm = p_elm;} else { elm = document.getElementById(p_elm);}
if (elm != null){ if(elm.style){ elm = elm.style; if(elm[p_property]){ return elm[p_property];} else { return null;}
} else { return null;}
}
}
function setElementProperty(p_property, p_value, p_elmId){ var p_elm = p_elmId; var elm = null; if(typeof(p_elm) == "object"){ elm = p_elm;} else { elm = document.getElementById(p_elm);}
if((elm != null) && (elm.style != null)){ elm = elm.style; elm[ p_property ] = p_value;}
}
function setProperty(p_property, p_value) { setElementProperty(p_property, p_value, calendarId);}
function getDaysInMonth(year, month) { return [31,((!(year % 4 ) && ( (year % 100 ) || !( year % 400 ) ))?29:28),31,30,31,30,31,31,30,31,30,31][month-1];}
function getDayOfWeek(year, month, day) { var date = new Date(year,month-1,day)
return date.getDay();}
this.setDate = setDate; function setDate(year, month, day) { if (dateField) { if (month < 10) {month = "0" + month;}
if (day < 10) {day = "0" + day;}
var dateString = day+"/"+month+"/"+year; dateField.value = dateString; hide();}
return;}
this.changeMonth = changeMonth; function changeMonth(change) { currentMonth += change; currentDay = 0; if(currentMonth > 12) { currentMonth = 1; currentYear++;} else if(currentMonth < 1) { currentMonth = 12; currentYear--;}
calendar = document.getElementById(calendarId); calendar.innerHTML = calendarDrawTable();}
this.changeYear = changeYear; function changeYear(change) { currentYear += change; currentDay = 0; calendar = document.getElementById(calendarId); calendar.innerHTML = calendarDrawTable();}
function getCurrentYear() { var year = new Date().getYear(); if(year < 1900) year += 1900; return year;}
function getCurrentMonth() { return new Date().getMonth() + 1;}
function getCurrentDay() { return new Date().getDate();}
function calendarDrawTable() { var dayOfMonth = 1; var validDay = 0; var startDayOfWeek = getDayOfWeek(currentYear, currentMonth, dayOfMonth); var daysInMonth = getDaysInMonth(currentYear, currentMonth); var css_class = null; var table = "<table cellspacing='0' cellpadding='0' border='0'>"; table = table + "<tr class='header'>"; table = table + "  <td colspan='2' class='previous'><a href='javascript:changeCalendarControlYear(-1);'>&laquo;</a> <a href='javascript:changeCalendarControlMonth(-1);'>&lt;</a></td>"; table = table + "  <td colspan='3' class='title' width=90px>" + months[currentMonth-1] + " " + currentYear + "</td>"; table = table + "  <td colspan='2' class='next'> <a href='javascript:changeCalendarControlMonth(1);'>&gt;</a> <a href='javascript:changeCalendarControlYear(1);'>&raquo;</a></td>"; table = table + "</tr>"; table = table + "<tr class='header'><th>S</th><th>M</th><th>T</th><th>W</th><th>T</th><th>F</th><th>S</th></tr>"; for(var week=0; week < 6; week++) { table = table + "<tr>"; for(var dayOfWeek=0; dayOfWeek < 7; dayOfWeek++) { if(week == 0 && startDayOfWeek == dayOfWeek) { validDay = 1;} else if (validDay == 1 && dayOfMonth > daysInMonth) { validDay = 0;}
if(validDay) { if (dayOfMonth == selectedDay && currentYear == selectedYear && currentMonth == selectedMonth) { css_class = 'current';} else if (dayOfWeek == 0 || dayOfWeek == 6) { css_class = 'weekend';} else { css_class = 'weekday';}
table = table + "<td><a class='"+css_class+"' href=\"javascript:setCalendarControlDate("+currentYear+","+currentMonth+","+dayOfMonth+")\">"+dayOfMonth+"</a></td>"; dayOfMonth++;} else { table = table + "<td class='empty'>&nbsp;</td>";}
}
table = table + "</tr>";}
table = table + "<tr class='header'><th colspan='7' style='padding: 3px;'><a href='javascript:hideCalendarControl();'>Close</a></td></tr>"; table = table + "</table>"; return table;}
this.show = show; function show(field) { if (isDate(field.value)==false)
{ field.value = "";}
if (dateField == field) { return;} else { dateField = field; txtControl = field.id;}
if(dateField) { try { var dateString = new String(dateField.value); var dateParts = dateString.split("/"); selectedDay = parseInt(dateParts[0],10); selectedMonth = parseInt(dateParts[1],10); selectedYear = parseInt(dateParts[2],10);} catch(e) {}
}
if (!(selectedYear && selectedMonth && selectedDay)) { selectedMonth = getCurrentMonth(); selectedDay = getCurrentDay(); selectedYear = getCurrentYear();}
currentMonth = selectedMonth; currentDay = selectedDay; currentYear = selectedYear; if(document.getElementById){ calendar = document.getElementById(calendarId); calendar.innerHTML = calendarDrawTable(currentYear, currentMonth); setElementProperty('display', 'block', 'CalendarControlIFrame'); setProperty('display', 'block'); var fieldPos = new positionInfo(dateField); var calendarPos = new positionInfo(calendarId); var x = fieldPos.getElementLeft(); var y = fieldPos.getElementBottom(); setProperty('left', x + "px"); setProperty('top', y + "px"); setElementProperty('left', x + "px", 'CalendarControlIFrame'); setElementProperty('top', y + "px", 'CalendarControlIFrame'); setElementProperty('width', calendarPos.getElementWidth() + "px", 'CalendarControlIFrame'); setElementProperty('height', calendarPos.getElementHeight() + "px", 'CalendarControlIFrame');}
}
this.hide = hide; function hide() { if(dateField) { setProperty('display', 'none'); setElementProperty('display', 'none', 'CalendarControlIFrame'); dateField = null;}
}
}
var calendarControl = new CalendarControl(); function showCalendarControl(textField) { calendarControl.show(document.getElementById(textField));}
function hideCalendarControl() { calendarControl.hide();}
function setCalendarControlDate(year, month, day) { calendarControl.setDate(year, month, day);}
function changeCalendarControlYear(change) { calendarControl.changeYear(change);}
function changeCalendarControlMonth(change) { calendarControl.changeMonth(change);}
document.write("<iframe id='CalendarControlIFrame' src='javascript:false;' frameBorder='0' scrolling='no'></iframe>"); document.write("<div id='CalendarControl'></div>"); 

