function CalendarControl(){var calendarId='CalendarControl';var currentYear=0;var currentMonth=0;var currentDay=0;var selectedYear=0;var selectedMonth=0;var selectedDay=0;var maxYear=0;var maxMonth=0;var maxDay=0;var minYear=0;var minMonth=0;var minDay=0;var months=['January','February','March','April','May','June','July','August','September','October','November','December'];var dateField=null;var dateFormat=null;this.setDate=setDate;this.changeMonth=changeMonth;this.changeYear=changeYear;this.show=show;this.hide=hide;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();}
function setDate(year,month,day){if(dateField){if(month<10){month="0"+month;}
if(day<10){day="0"+day;}
var dateString=new String(dateFormat);dateString=dateString.replace(/yyyy/gi,year);dateString=dateString.replace(/mm/gi,month);dateString=dateString.replace(/dd/gi,day);dateField.value=dateString;hide();}
return;}
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();}
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 widthTable=154;var widthColumn=widthTable/7;var table=""
table=table+"<table cellspacing='0' cellpadding='0' border='0' width='"+widthTable+"'>";table=table+"<tr class='header'>";table=table+"<td colspan='7'>";table=table+"<table cellspacing='0' cellpadding='0' border='0' width='100%'>";table=table+"<tr>";table=table+"<td class='previous'><a href='javascript:changeCalendarControlYear(-1);'>&lt;&lt;</a> <a href='javascript:changeCalendarControlMonth(-1);'>&lt;</a></td>";table=table+"<td class='title'>"+months[currentMonth-1]+"<br>"+currentYear+"</td>";table=table+"<td class='next'><a href='javascript:changeCalendarControlMonth(1);'>&gt;</a> <a href='javascript:changeCalendarControlYear(1);'>&gt;&gt;</a></td>";table=table+"</tr>";table=table+"</table>";table=table+"</td>";table=table+"</tr>";table=table+"<tr><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 width='"+widthColumn+"'><a class='"+css_class+"' href=\"javascript:setCalendarControlDate("+currentYear+", "+currentMonth+", "+dayOfMonth+")\">"+dayOfMonth+"</a></td>";dayOfMonth++;}
else{table=table+"<td width='"+widthColumn+"' class='empty'></td>";}}
table=table+"</tr>";}
table=table+"<tr><td colspan='7' class='footer'><a class='footer' href='javascript:hideCalendarControl();'>Close</a></td></tr>";table=table+"</table>";return table;}
function show(field){if(dateField==field){return;}
else{dateField=field;}
if(dateField){try{var dateString=new String(dateField.value);var dateSeparator=(dateString.indexOf("-",0)>-1)?"-":"/";var dateParts=dateString.split(dateSeparator);if(dateParts[0].length==4){dateFormat="yyyy"+dateSeparator+"mm"+dateSeparator+"dd";selectedYear=parseInt(dateParts[0],10);selectedMonth=parseInt(dateParts[1],10);selectedDay=parseInt(dateParts[2],10);}
else if(dateParts[0].length<=2){dateFormat="mm"+dateSeparator+"dd"+dateSeparator+"yyyy";selectedMonth=parseInt(dateParts[0],10);selectedDay=parseInt(dateParts[1],10);selectedYear=parseInt(dateParts[2],10);}
else{dateFormat="mm/dd/yyyy";}}
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');}}
function hide(){if(dateField){setProperty('display','none');setElementProperty('display','none','CalendarControlIFrame');dateField=null;}}}
var calendarControl=new CalendarControl();function showCalendarControl(textField){calendarControl.show(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>");function CreateElement(oParent,sType,sID,sName,sValue){var oElement=document.createElement(sType);if(oParent!=null)oParent.appendChild(oElement);if(sID!=null)oElement.id=sID;if(sName!=null)oElement.name=sName;if(sValue!=null)oElement.value=sValue;return oElement;}
function CreateOption(oParent,sID,sName,sDisplay,sValue,iPosition){var oOption=document.createElement("option");oParent.options.add(oOption,iPosition);oOption.id=sID;oOption.name=sName;oOption.innerText=sDisplay;oOption.value=sValue;return oOption;}
function CreateXMLDocument(sXML){var oXMLDoc=new ActiveXObject("Microsoft.XMLDOM");if((oXMLDoc)&&(sXML)){oXMLDoc.loadXML(sXML);}
return oXMLDoc;}
function EnableFormControls(oForm){for(i=0;i<oForm.elements.length;i++){oControl=oForm.elements(i);if(oControl.disabled==true){oControl.disabled=false;}}}
function DisableFormControls(oForm){for(i=0;i<oForm.elements.length;i++){oControl=oForm.elements(i);if(oControl.disabled==false){oControl.disabled=true;}}}
function positionInfo(object){var p_elm=object;this.getElementLeft=getElementLeft;this.getElementWidth=getElementWidth;this.getElementRight=getElementRight;this.getElementTop=getElementTop;this.getElementHeight=getElementHeight;this.getElementBottom=getElementBottom;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);}
function getElementRight(){return getElementLeft(p_elm)+getElementWidth(p_elm);}
function getElementWidth(){var elm;if(typeof(p_elm)=="object"){elm=p_elm;}
else{elm=document.getElementById(p_elm);}
return parseInt(elm.offsetWidth);}
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);}
function getElementBottom(){return getElementTop(p_elm)+getElementHeight(p_elm);}
function getElementHeight(){var elm;if(typeof(p_elm)=="object"){elm=p_elm;}
else{elm=document.getElementById(p_elm);}
return parseInt(elm.offsetHeight);}}
