var D var imgDir var fixedX = -1 var fixedY = -1 var startAt = 1 var showWeekNumber = 0 var showToday = 1 var gotoString = "Go To Current Month" var todayString = "Today is" var weekString = "Wk" var scrollLeftMessage = "Click to scroll to previous month. Hold mouse button to scroll automatically." var scrollRightMessage = "Click to scroll to next month. Hold mouse button to scroll automatically." var selectMonthMessage = "Click to select a month." var selectYearMessage = "Click to select a year." var selectDateMessage = "Select [date] as date." var crossobj, crossMonthObj, crossYearObj, monthSelected, yearSelected, dateSelected, omonthSelected, oyearSelected, odateSelected, monthConstructed, yearConstructed, intervalID1, intervalID2, timeoutID1, timeoutID2, ctlToPlaceValue, ctlNow, dateFormat, nStartingYear var bPageLoaded=false var today=new Date() var dateNow=today.getDate() var monthNow=today.getMonth() var yearNow =today.getYear() var imgsrc=new Array("drop1.gif","drop2.gif","left1.gif","left2.gif","right1.gif","right2.gif") var img=new Array() var bShow=false function hideElement(elmID,overDiv ){ for( i = 0; i < D.tags(elmID).length; i++ ){ obj=D.tags(elmID)[i] if( !obj || !obj.offsetParent ){continue} objLeft=obj.offsetLeft; objTop=obj.offsetTop; objParent=obj.offsetParent; while(objParent.tagName.toUpperCase() != "BODY" ){ objLeft+=objParent.offsetLeft; objTop+=objParent.offsetTop; objParent=objParent.offsetParent;} objHeight=obj.offsetHeight; objWidth=obj.offsetWidth; if((overDiv.offsetLeft + overDiv.offsetWidth ) <= objLeft ); else if(( overDiv.offsetTop + overDiv.offsetHeight ) <= objTop ); else if( overDiv.offsetTop >= ( objTop + objHeight )); else if( overDiv.offsetLeft >= ( objLeft + objWidth )); else{obj.style.visibility = "hidden"}} } function showElement( elmID ){ for( i = 0; i < D.tags( elmID ).length; i++){ obj = D.tags( elmID )[i]; if( !obj || !obj.offsetParent ){continue} obj.style.visibility = ""} } function HolidayRec (d, m, y, desc){ this.d = d this.m = m this.y = y this.desc = desc } var HolidaysCounter = 0 var Holidays = new Array() function addHoliday (d, m, y, desc){Holidays[HolidaysCounter++] = new HolidayRec ( d, m, y, desc )} var monthName = new Array("January","February","March","April","May","June","July","August","September","October","November","December") if (startAt==0){dayName = new Array("Sun","Mon","Tue","Wed","Thu","Fri","Sat") }else{dayName = new Array("Mon","Tue","Wed","Thu","Fri","Sat","Sun")} var styleAnchor="text-decoration:none;color:black;cursor:hand" var styleLightBorder="border-style:solid;border-width:1px;border-color:#a0a0a0;cursor:hand" function swapImage(srcImg, destImg){document.getElementById(srcImg).setAttribute("src",imgDir + destImg)} function initDXCal(){ imgDir=D.imagepath.innerText+"/" for (i=0;i
Close the Calendar
" if (showToday==1){t+=""} t+="" D.dsp4.innerHTML=t crossobj=D.calendar.style hideCalendar() crossMonthObj=D.selectMonth.style crossYearObj=D.selectYear.style monthConstructed=false; yearConstructed=false; if (showToday==1){ D.lblToday.innerHTML=todayString+" "+dayName[(today.getDay()-startAt==-1)?6:(today.getDay()-startAt)]+", " + dateNow +" "+monthName[monthNow].substring(0,3)+" "+yearNow+""} sHTML1="   " sHTML1+="   " sHTML1+=" " sHTML1+=" " D.caption.innerHTML=sHTML1 bPageLoaded=true } function hideCalendar(){crossobj.visibility="hidden" if(crossMonthObj!=null){crossMonthObj.visibility="hidden"} if(crossYearObj!=null){crossYearObj.visibility="hidden"} showElement( 'SELECT', D.calendar) } function constructDate(d,m,y){ sTmp = dateFormat sTmp = sTmp.replace("dd","") sTmp = sTmp.replace("d","") sTmp = sTmp.replace("",padZero(d)) sTmp = sTmp.replace("",d) sTmp = sTmp.replace("mmm","") sTmp = sTmp.replace("mm","") sTmp = sTmp.replace("m","") sTmp = sTmp.replace("",m+1) sTmp = sTmp.replace("",padZero(m+1)) sTmp = sTmp.replace("",monthName[m]) return sTmp.replace ("yyyy",y) } function padZero(num){return (num< 10)? '0' + num : num} function closeCalendar(){var sTmp;hideCalendar() ctlToPlaceValue.value =constructDate(dateSelected,monthSelected,yearSelected)} function StartDecMonth(){intervalID1=setInterval("decMonth()",80)} function StartIncMonth(){intervalID1=setInterval("incMonth()",80)} function incMonth(){monthSelected++;if(monthSelected>11){monthSelected=0;yearSelected++};constructCalendar()} function decMonth(){monthSelected--;if(monthSelected<0){monthSelected=11;yearSelected--}constructCalendar()} function constructMonth() { popDownYear() if (!monthConstructed) { sHTML="" for(i=0; i<12;i++){ sName=monthName[i] if (i==monthSelected){sName=""+sName+""} sHTML+=" " + sName + " "} D.selectMonth.innerHTML=""+sHTML+"
" monthConstructed=true }} function popUpMonth() { constructMonth() crossMonthObj.visibility="visible" crossMonthObj.left=parseInt(crossobj.left) + 50 crossMonthObj.top=parseInt(crossobj.top) + 26 hideElement( 'SELECT', D.selectMonth) } function popDownMonth(){crossMonthObj.visibility="hidden"} function incYear() { for(i=0; i<7; i++){ newYear=(i+nStartingYear)+1 if(newYear==yearSelected){txtYear=" "+newYear+" " } else{txtYear=" "+newYear+" " } document.getElementById("y"+i).innerHTML=txtYear} nStartingYear ++ bShow=true } function decYear(){ for(i=0; i<7; i++){ newYear=(i+nStartingYear)-1 if (newYear==yearSelected){txtYear=" "+newYear+" " } else{txtYear=" "+newYear+" "} document.getElementById("y"+i).innerHTML = txtYear} nStartingYear -- bShow=true } function selectYear(nYear) { yearSelected=parseInt(nYear+nStartingYear); yearConstructed=false; constructCalendar(); popDownYear(); } function constructYear() { popDownMonth() sHTML="" if (!yearConstructed) { sHTML="-" j =0 nStartingYear=yearSelected-3 for(i=(yearSelected-3); i<=(yearSelected+3); i++){sName=i if(i==yearSelected){sName=""+sName+""} sHTML += " " + sName + " " j ++} sHTML+= "+" D.selectYear.innerHTML= ""+sHTML+"
" yearConstructed=true }} function popDownYear() { clearInterval(intervalID1) clearTimeout(timeoutID1) clearInterval(intervalID2) clearTimeout(timeoutID2) crossYearObj.visibility= "hidden" } function popUpYear() { var leftOffset constructYear() crossYearObj.visibility="visible" leftOffset=parseInt(crossobj.left) + D.spanYear.offsetLeft leftOffset+=6 crossYearObj.left=leftOffset crossYearObj.top=parseInt(crossobj.top)+26 } function WeekNbr(n) { year = n.getFullYear(); month = n.getMonth() + 1; if (startAt == 0) {day = n.getDate() + 1;} else {day = n.getDate();} a = Math.floor((14-month) / 12); y = year + 4800 - a; m = month + 12 * a - 3; b = Math.floor(y/4) - Math.floor(y/100) + Math.floor(y/400); J = day + Math.floor((153 * m + 2) / 5) + 365 * y + b - 32045; d4 = (((J + 31741 - (J % 7)) % 146097) % 36524) % 1461; L = Math.floor(d4 / 1460); d1 = ((d4 - L) % 365) + L; week = Math.floor(d1/7) + 1; return week; } function constructCalendar () { var aNumDays = Array (31,0,31,30,31,30,31,31,30,31,30,31) var dateMessage var startDate=new Date(yearSelected,monthSelected,1) var endDate if (monthSelected==1){ endDate=new Date (yearSelected,monthSelected+1,1); endDate=new Date (endDate- (24*60*60*1000)); numDaysInMonth = endDate.getDate() }else{numDaysInMonth = aNumDays[monthSelected];} datePointer=0 dayPointer=startDate.getDay() - startAt if(dayPointer<0){dayPointer=6} sHTML="" if (showWeekNumber==1){ sHTML += ""} for(i=0; i<7; i++){sHTML+=""} sHTML +="" if(showWeekNumber==1){sHTML+=""} for(var i=1;i<=dayPointer;i++){sHTML+=""} for(datePointer=1;datePointer<=numDaysInMonth;datePointer++){dayPointer++;sHTML += "" if((showWeekNumber==1)&&(datePointer"+(WeekNbr(new Date(yearSelected,monthSelected,datePointer+1)))+" "}}} D.content.innerHTML=sHTML D.spanMonth.innerHTML=" "+monthName[monthSelected] + " " D.spanYear.innerHTML=" "+yearSelected+" " } function dxcal(o,n,d){popUpCalendar(o,n,d)} function popUpCalendar(ctl,ctl2,format) { var DSCxgutter=240 var DSCygutter=160 var leftpos=0;var toppos=0 if (bPageLoaded){ if(crossobj.visibility=="hidden"){ctlToPlaceValue=ctl2;dateFormat=format;formatChar=" ";aFormat=dateFormat.split(formatChar) if(aFormat.length<3){formatChar = "/";aFormat=dateFormat.split(formatChar) if(aFormat.length<3){formatChar = ".";aFormat=dateFormat.split(formatChar) if(aFormat.length<3){formatChar = "-";aFormat=dateFormat.split(formatChar) if(aFormat.length<3){formatChar=""}}}} tokensChanged=0 if (formatChar!=""){aData=ctl2.value.split(formatChar) for(i=0;i<3;i++){ if ((aFormat[i]=="d") || (aFormat[i]=="dd")) {dateSelected = parseInt(aData[i], 10);tokensChanged++} else if((aFormat[i]=="m") || (aFormat[i]=="mm")) {monthSelected=parseInt(aData[i], 10) - 1;tokensChanged ++} else if(aFormat[i]=="yyyy") {yearSelected = parseInt(aData[i], 10);tokensChanged ++} else if(aFormat[i]=="mmm") {for(j=0; j<12;j++){if (aData[i]==monthName[j]){monthSelected=j;tokensChanged ++}}}}} if((tokensChanged!=3)||isNaN(dateSelected)||isNaN(monthSelected)||isNaN(yearSelected)){dateSelected=dateNow;monthSelected=monthNow;yearSelected = yearNow} odateSelected=dateSelected omonthSelected=monthSelected oyearSelected=yearSelected aTag=ctl do{ aTag = aTag.offsetParent leftpos+=aTag.offsetLeft toppos+=aTag.offsetTop }while(aTag.tagName!="BODY") var xp=ctl.offsetLeft+leftpos var yp=ctl.offsetTop+toppos+ctl.offsetHeight+2 if((xp+DSCxgutter)>document.body.clientWidth){xp-=((xp+DSCxgutter)-document.body.clientWidth)} if((yp+DSCygutter)>document.body.clientHeight){yp-=((yp+DSCygutter)-document.body.clientHeight)} crossobj.left =fixedX==-1 ? xp :fixedX;crossobj.top =fixedY==-1 ? yp :fixedY constructCalendar (1,monthSelected,yearSelected); crossobj.visibility="visible" hideElement( 'SELECT', D.calendar) bShow = true} else{hideCalendar() if (ctlNow!=ctl) {popUpCalendar(ctl, ctl2, format)}} ctlNow = ctl} } //Function to validate the date field function check_date(field){ var checkstr = "0123456789"; var DateField = field; var Datevalue = ""; var DateTemp = ""; var seperator = "/"; var day; var month; var year; var leap = 0; var err = 0; var i; err = 0; DateValue = DateField.value; /* Delete all chars except 0..9 */ for (i = 0; i < DateValue.length; i++) { if (checkstr.indexOf(DateValue.substr(i,1)) >= 0) { DateTemp = DateTemp + DateValue.substr(i,1); } } DateValue = DateTemp; /* Always change date to 8 digits - string*/ /* if year is entered as 2-digit / always assume 20xx */ if (DateValue.length == 6) { DateValue = DateValue.substr(0,4) + '20' + DateValue.substr(4,2); } if (DateValue.length != 8) { err = 19;} /* year is wrong if year = 0000 */ year = DateValue.substr(4,4); if (year == 0) { err = 20; } /* Validation of month*/ month = DateValue.substr(2,2); if ((month < 1) || (month > 12)) { err = 21; } /* Validation of day*/ day = DateValue.substr(0,2); if (day < 1) { err = 22; } /* Validation leap-year / february / day */ if ((year % 4 == 0) || (year % 100 == 0) || (year % 400 == 0)) { leap = 1; } if ((month == 2) && (leap == 1) && (day > 29)) { err = 23; } if ((month == 2) && (leap != 1) && (day > 28)) { err = 24; } /* Validation of other months */ if ((day > 31) && ((month == "01") || (month == "03") || (month == "05") || (month == "07") || (month == "08") || (month == "10") || (month == "12"))) { err = 25; } if ((day > 30) && ((month == "04") || (month == "06") || (month == "09") || (month == "11"))) { err = 26; } /* if 00 ist entered, no error, deleting the entry */ if ((day == 0) && (month == 0) && (year == 00)) { err = 0; day = ""; month = ""; year = ""; seperator = ""; } /* if no error, write the completed date to Input-Field (e.g. 13/12/2001) */ if (err == 0) { DateField.value = day + seperator + month + seperator + year; //var SecondDate = new Date(year,month,day); // eg YYYY/MM/DD //CheckDateDif(SecondDate); //Check date difference } /* Error-message if err != 0 */ else { alert("You have not entered a valid date. Please amend the Outward/Return Journey Date field before proceeding."); // DateField.select(); DateField.focus(); } } function check_date_diff(field1,field2){ var DateField1 = field1; var DateField2 = field2; DateValue1 = DateField1.value; DateValue2 = DateField2.value; var Date1 = new Date(DateValue1.substring(6,10), DateValue1.substring(3,5),DateValue1.substring(0,2)); var Date2 = new Date(DateValue2.substring(6,10), DateValue2.substring(3,5),DateValue2.substring(0,2)); var difference = Date1.getTime() - Date2.getTime(); var daysDifference = Math.floor(difference/1000/60/60/24); alert(daysDifference); } function validateMe(){ var cont = true; var referralDate = document.getElementById('date').value; if(referralDate=='') { alert('Please enter a value for referral date'); document.getElementById('date').focus(); return; } var assesmentDate = document.getElementById('date_1').value; if(assesmentDate=='') { alert('Please enter a value for assesment date'); document.getElementById('date_1').focus(); return; } var decisionDate = document.getElementById('date_2').value; if(decisionDate=='') { alert('Please enter a value for decision date'); document.getElementById('date_2').focus(); return; } var requestDate = document.getElementById('date_3').value; if(requestDate=='') { alert('Please enter a value for request date'); document.getElementById('date_3').focus(); return; } var d = new Date(); var refferalDateC = new Date(referralDate.substring(6,10), referralDate.substring(3,5), referralDate.substring(0,2)); var assesmentDateC = new Date(assesmentDate.substring(6,10), assesmentDate.substring(3,5), assesmentDate.substring(0,2)); var decisionDateC = new Date(decisionDate.substring(6,10), decisionDate.substring(3,5), decisionDate.substring(0,2)); var requestDateC = new Date(requestDate.substring(6,10), requestDate.substring(3,5), requestDate.substring(0,2)); var today = new Date(d.getFullYear(), d.getMonth() + 1, d.getDate()); var refDifference = refferalDateC.getTime() - today.getTime(); var assDifference = assesmentDateC.getTime() - today.getTime(); var decDifference = decisionDateC.getTime() - today.getTime(); var reqDifference = requestDateC.getTime() - today.getTime(); var refYearDifference = Math.floor(refDifference/1000/60/60/24/365); var assYearDifference = Math.floor(assDifference/1000/60/60/24/365); var decYearDifference = Math.floor(decDifference/1000/60/60/24/365); var reqYearDifference = Math.floor(reqDifference/1000/60/60/24/365); var assRefDiff = assesmentDateC.getTime() - refferalDateC.getTime(); var decAssDiff = decisionDateC.getTime() - assesmentDateC.getTime(); var reqDecDiff = requestDateC.getTime() - decisionDateC.getTime(); if (refYearDifference < -3 ){ var name=confirm("The date you have selected for referral is more than 3 years ago!"); if(name==true){ cont = true; }else{ document.getElementById('date').focus(); cont=false; return; } } var refDayDifference = Math.floor(refDifference/1000/60/60/24); if(refDayDifference>0){ alert('The referral date must be today or in the past, please amend'); document.getElementById('date').focus(); cont=false; return; }else{ cont = true; } if (assYearDifference < -3 ){ var name=confirm("The date you have selected for assesment is more than 3 years ago!"); if(name==true){ cont =true; }else{ document.getElementById('date_1').focus(); cont=false; return; } } var assDayDifference = Math.floor(assDifference/1000/60/60/24); if(assDayDifference>0){ alert('The assesment date must be today or in the past, please amend'); document.getElementById('date_1').focus(); cont=false; return; }else{ cont = true; } if(assRefDiff < 0){ alert('The assesment date must be greater than the referral date, please amend'); document.getElementById('date_1').focus(); cont=false; return; } if (decYearDifference < -3 ){ var name=confirm("The date you have selected for decision is more than 3 years ago!"); if(name==true){ cont =true; }else{ document.getElementById('date_2').focus(); cont=false; return; } } var decDayDifference = Math.floor(decDifference/1000/60/60/24); if(decDayDifference>0){ alert('The decision date must be today or in the past, please amend'); document.getElementById('date_2').focus(); cont=false; return; }else{ cont = true; } if(decAssDiff < 0){ alert('The decision date must be greater than the assesment date, please amend'); document.getElementById('date_2').focus(); cont=false; return; } if (reqYearDifference < -3 ){ var name=confirm("The date you have selected for request is more than 3 years ago!"); if(name==true){ cont =true; }else{ document.getElementById('date_3').focus(); cont=false; return; } } var reqDayDifference = Math.floor(reqDifference/1000/60/60/24); if(reqDayDifference>0){ alert('The request date must be today or in the past, please amend'); document.getElementById('date_3').focus(); cont=false; return; }else{ cont = true; } if(reqDecDiff < 0){ alert('The request date must be greater than the decision date, please amend'); document.getElementById('date_3').focus(); cont=false; return; } }
" + weekString + ""+ dayName[i]+"
"+WeekNbr(startDate)+"  ";sStyle=styleAnchor if((datePointer==odateSelected)&&(monthSelected==omonthSelected) && (yearSelected==oyearSelected)){sStyle+=styleLightBorder} sHint="" for(k=0;k " + datePointer + " "} else if(dayPointer % 7 == (startAt * -1)+1) {sHTML+=" "+datePointer+ " "} else{sHTML+=" "+datePointer+" " } sHTML+= "" if((dayPointer+startAt) % 7 == startAt){sHTML += "