var inputDateField = 0; var divIdCalendar = 0; var bCalOpen = 0; var nCalTimeOut = null; var secondInput = null; var cssCustomLink = ""; var agencyCustomCssLink = ""; var nSecondDateOffset = 7; // Get day, month year of current day var now = new Date(); var nSlcDay = now.getDate(); var nSlcMonth = now.getMonth()+1; var nSlcYear = now.getFullYear(); var CALENDAR_WIDTH = 140; var POSITION_REL_DOWN_LEFT = 1; var POSITION_REL_DOWN_RIGHT = 2; var POSITION_REL_TOP_LEFT = 5; var POSITION_REL_TOP_RIGHT = 6; var POSITION_REL_DOWN_HALF_LEFT = 7; var POSITION_REL_BOTTOM_LEFT_OF_CAL_AT_TOP_LEFT = 8; var Calendar_month = new Array (new Array("janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre" ), new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December") ); var Calendar_days = new Array (new Array("Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi"), new Array("Sunday", "Monday", "Tuesday", "Wednesday", "Thrusday", "Friday", "Saturday") ); var Calendar_title = new Array (new Array("Journée courante", "Journée sélectionnée"), new Array("Current day", "Day selected")); //var calendarDateFormat = "yyyy-mm-dd"; var defaultCalendarDateFormatValue = ["yyyy-mm-dd", "mm-dd-yyyy", "aaaa-mm-jj", "mm-jj-aaaa"]; var dualCalendarDateFormatID = 0; var updateTheFrame = 1; function InitializeDualCalendarDateFormatID(_dateformatId) { dualCalendarDateFormatID = _dateformatId; } function OnKeyDownEventFunction(thisEvent, textInputID, calendarID, clickFunction) { if(thisEvent.keyCode) { var keyCode = thisEvent.keyCode; // info -> tab key == 9 if(keyCode == 9) { var textBox = getElement(textInputID); if(textBox!=null) { if(isInvalidDateFormatOrDefaultFormat(textBox.value))//dateRegEx is defined in Util.js { var cal = getElement(calendarID); if( cal != null && clickFunction != null && clickFunction != undefined && /*clickFunction != '' && */ clickFunction != 'null' && clickFunction != 'undefined' ) { eval( clickFunction + '()' ); } } } } } } function FormatDayToString(dDayIn) { var strDay = dDayIn; if(dDayIn < 10) { strDay = "0"+strDay; } return strDay; } function IsSameDay( DateA, DateB ) { return ( DateA.getYear() == DateB.getYear() && DateA.getMonth() == DateB.getMonth() && DateA.getDate() == DateB.getDate() ); } function IsToday ( DateToTest ) { var now = new Date(); return IsSameDay( now, DateToTest ); } function FindSmallestIndex( enabledDatesArray, DateToTest ) { if ( enabledDatesArray == null) { return 0; } for ( var i = 0; i < enabledDatesArray.length; i++ ) { var dateFromArray = enabledDatesArray[i]; var caldate = GetDateFromString( dateFromArray ); if ( IsSameDay( caldate, DateToTest ) || caldate > DateToTest ) { return i; } } return 0; } function IsEnabledDate( startIndex, enabledDatesArray, DateToTest ) { if ( enabledDatesArray == null) { return true; } for ( var i = startIndex; i < enabledDatesArray.length; i++ ) { var dateFromArray = enabledDatesArray[i]; var caldate = GetDateFromString( dateFromArray ); if ( IsSameDay( caldate, DateToTest ) ) { return true; } else if ( caldate > DateToTest ) { return false; } } return false; } function printMonth( nDateParam, inputDate, bIsInputVal, bSlcOnlyFutureDaysIn, exportFocusToElemID, enabledDatesArray, functionToCallAfterClose ) { var startIndex = 0; if ( enabledDatesArray != null ) startIndex = FindSmallestIndex( enabledDatesArray, nDateParam ); var monthParam = nDateParam.getMonth(); monthParam++; if ( monthParam == 12 ) monthParam = 0; // print days of week calendarString = " "; for(i=0; i<7; i++) { calendarString += " "+ Calendar_days[calendarLang][i].substr(0, 2) +""; } calendarString += " "; for(w=0; w<6; w++) { calendarString += "\n"; for(wd=0; wd<7; wd++) { var startIndex = 0; // calculates the date to put in the cell nDateParam.setDate( nDateParam.getDate() + 1 ); nYear = nDateParam.getFullYear(); var strDateCell; switch(defaultCalendarDateFormatValue[dualCalendarDateFormatID].toLowerCase()) { case "yyyy-mm-dd": case "aaaa-mm-jj": strDateCell = nYear + "-" + FormatDayToString(nDateParam.getMonth()+1) + "-" + FormatDayToString(nDateParam.getDate());//yyyy-mm-dd; break; case "mm-dd-yyyy": case "mm-jj-aaaa": strDateCell = FormatDayToString(nDateParam.getMonth()+1) + "-" + FormatDayToString(nDateParam.getDate()) + "-" + nYear; break; default: } var selectableDateJavascriptAndHref = "href='javascript:void(0)' onclick=\"javascript:parent.printDateAndClose(event, '"+strDateCell+"','"+exportFocusToElemID+"','" + functionToCallAfterClose + "');\""; var cellContent = FormatDayToString(nDateParam.getDate()); if(nDateParam.getMonth()==monthParam) { if( IsToday( nDateParam ) && IsEnabledDate( startIndex, enabledDatesArray, nDateParam ) ) { calendarString +="" + cellContent +""; } else { if( IsSameDay( inputDate, nDateParam ) && IsEnabledDate( startIndex, enabledDatesArray, nDateParam ) && bIsInputVal) { calendarString +=""+ cellContent +""; } else { if(bSlcOnlyFutureDaysIn) { if(isDateFutureDay(nDateParam) && IsEnabledDate( startIndex, enabledDatesArray, nDateParam )) { calendarString +="" + cellContent + ""; } else { calendarString +=""+ cellContent + ""; } } else { calendarString +="" + cellContent +""; } } } } else { calendarString +=" "; } } calendarString +="\n"; } return calendarString; } //function buildCalendar(bSlcOnlyFutureDays, csLangIn) function buildCalendar(dDayIn, dMonthIn, dYearIn, bIsInputVal, bSlcOnlyFutureDaysIn, csLangIn, exportFocusToElemID, enabledDatesArray, functionToCallAfterClose, firstDateToDisplay ) { // Need To Generate new Array for Parameters of Previous and Next Month var newArrayString = "null"; if( enabledDatesArray != null ) { newArrayString = "new Array("; for( var i = 0; i < enabledDatesArray.length; i++ ) { if ( i > 0 ) { newArrayString += ","; } newArrayString += "'" + enabledDatesArray[i] + "'"; } newArrayString += ")" } // Constant declaration for month and day strings var calendarString = ""; var close = new Array ( new Array("Fermer"), new Array("Close")); // Toggle calendar language between english and french if(csLangIn.toUpperCase() == "FR") calendarLang=0; else calendarLang=1; // Get day, month year of current day // Reset nSlcDay Month and Year to current month // alert("Selected date "+nSlcDay+" "+nSlcMonth+" "+nSlcYear); var inputDate = new Date( dYearIn, dMonthIn - 1, dDayIn ) var firstDate = new Date( dYearIn, dMonthIn - 1, 1 ); if ( firstDateToDisplay != null ) firstDate = firstDateToDisplay; nSlcDay = 1; nSlcMonth = firstDate.getMonth()+1; nSlcYear = firstDate.getFullYear(); // Calculate previous month var prevMonthDate = new Date( firstDate.getFullYear(), firstDate.getMonth(), 1); prevMonthDate.setMonth(prevMonthDate.getMonth()-1); // Calculate next month var nextMonthDate = new Date(firstDate.getFullYear(), firstDate.getMonth(), 1); nextMonthDate.setMonth(nextMonthDate.getMonth()+1); // Calculate next month +2 var nextMonthDate2 = new Date(firstDate.getFullYear(), firstDate.getMonth(), 1); nextMonthDate2.setMonth(nextMonthDate2.getMonth()+2); // alert("Selected date "+nextMonthDate2.getDate()+" "+nextMonthDate2.getMonth()+" "+nextMonthDate2.getFullYear()+" monthIn "+dMonthIn); // Create links to navigate in the calendar var prevMonthLink = "#";//"pageAccueil.php?ddate=01-"+FormatDayToString( (prevMonthDate.getMonth()+1) )+"-"+FormatDayToString( (prevMonthDate.getFullYear()) ); var prevMonth = Calendar_month[calendarLang][prevMonthDate.getMonth()]+" "+(prevMonthDate.getFullYear()); var monthYear = Calendar_month[calendarLang][firstDate.getMonth()]+" "+firstDate.getFullYear(); var nextMonthLink = "#";//"pageAccueil.php?ddate=01-"+FormatDayToString( (nextMonthDate.getMonth()+1) )+"-"+FormatDayToString( (nextMonthDate.getFullYear()) ); var nextMonth = Calendar_month[calendarLang][nextMonthDate.getMonth()]+" "+(nextMonthDate.getFullYear()); // Starting the code that creates the first calendar calendarString += ""; calendarString += "" calendarString += " "; calendarString += " "; calendarString += " "; calendarString += " "; calendarString += " "; var nbDaysInWeek = 0; var nDate = new Date( firstDate ); // set date to first day of month nDate.setDate(1); nbDaysInWeek = nDate.getDay(); //set date to sunday date for nDate.setDate(nDate.getDate()-nbDaysInWeek-1); // var enabledDatesArrayStringDisplay =""; // for(var i = 0; i" calendarString += " "; calendarString += " "; calendarString += " "; calendarString += " "; calendarString += " "; calendarString += printMonth( nDate2, inputDate, bIsInputVal, bSlcOnlyFutureDaysIn, exportFocusToElemID, enabledDatesArray, functionToCallAfterClose ); calendarString +="
"+close[calendarLang]+" X
"; calendarString += " <"; calendarString += " "+monthYear+""; calendarString += " >"; calendarString += "
"; calendarString += ""; calendarString += " "+monthYear+""; calendarString += ""; calendarString += "
"; return calendarString; } // string: strDate => must be in YYYY-MM-DD format function GetDateFromString(strDate) { if ( strDate == null || strDate == undefined ) return new Date(); // var reDateFormat = /^\d{4}-\d{2}-\d{2}$/; // if (strDate.search(reDateFormat)==-1) {//if match failed // return new Date(); // } // else { // var csDateTokens = strDate.split("-"); //split using minus char as delimiter // return new Date(csDateTokens[0], (csDateTokens[1]-1), csDateTokens[2]); // } switch(defaultCalendarDateFormatValue[dualCalendarDateFormatID].toLowerCase()) { case "yyyy-mm-dd": case "aaaa-mm-jj": { var reDateFormat = /^\d{4}-\d{2}-\d{2}$/; if (strDate.search(reDateFormat)==-1) {//if match failed return new Date(); } else { var csDateTokens = strDate.split("-"); //split using minus char as delimiter return new Date(csDateTokens[0], (csDateTokens[1]-1), csDateTokens[2]); } } break; case "mm-dd-yyyy": case "mm-jj-aaaa": { var reDateFormat = /^\d{2}-\d{2}-\d{4}$/; if (strDate.search(reDateFormat)==-1) {//if match failed return new Date(); } else { var csDateTokens = strDate.split("-"); //split using minus char as delimiter return new Date(csDateTokens[2], (csDateTokens[0] - 1), csDateTokens[1]); } } break; default: } } //function hideFrame() //{ //var frame = getIFrame('calFrame'); //frame.style.visibility = 'hidden'; //frame.style.display = 'none'; //ShowSection('calFrame', false); //} function updateFrame( csCalendarHTML ) { if(ie) { document.frames['calFrame'].document.open(); document.frames['calFrame'].document.write(csCalendarHTML); document.frames['calFrame'].document.close(); } else if(n6) { window['calFrame'].document.open(); window['calFrame'].document.write(csCalendarHTML); window['calFrame'].document.close(); } //var frame = getIFrame('calFrame'); //frame.style.display = 'block'; //frame.style.visibility = 'visible'; if(updateTheFrame) ShowSection('calFrame', true); else updateTheFrame = 1; } function printTSGCalendar( eventIn, editControlId, bAllowOnlyFuture, hostName, calAnchorObj, position_rel, secondTextField, nSecondTextOffset, dateFormat ) { var fullhostName = ''; if ( hostName != null && hostName != '' ) fullhostName = "http://" + hostName; printCalendar( eventIn, editControlId, bAllowOnlyFuture, 'EN', fullhostName + '/Shared/common/styles/dualCalendar.css', '', calAnchorObj, position_rel, secondTextField, nSecondTextOffset, '', '', null, '', dateFormat); } function printTSGCalendarWithExpressB2CGenericCalendar( eventIn, editControlId, bAllowOnlyFuture, hostName, calAnchorObj, position_rel, secondTextField, nSecondTextOffset) { var customCSSPath = ''; var elemCustomCSS = getElement('agencyCustomCalendarCSS'); if (elemCustomCSS != null) { customCSSPath = elemCustomCSS.value; } var fullhostName = ''; if ( hostName != null && hostName != '' ) fullhostName = "http://" + hostName; printCalendar( eventIn, editControlId, bAllowOnlyFuture, 'EN', fullhostName + '/Shared/common/styles/dualCalendar.css', customCSSPath, calAnchorObj, position_rel, secondTextField, nSecondTextOffset, '', '', null, ''); } function printTSGCalendarWithExpressB2CGenericCalendarForWebAdmin( eventIn, editControlId, bAllowOnlyFuture, hostName, calAnchorObj, position_rel, secondTextField, nSecondTextOffset) { var customCSSPath = ''; var elemCustomCSS = getElement('agencyCustomCalendarCSS'); if (elemCustomCSS != null) { customCSSPath = elemCustomCSS.value; } var fullhostName = ''; if ( hostName != null && hostName != '' ) fullhostName = "http://" + hostName; printCalendarForMousePosition( eventIn, editControlId, bAllowOnlyFuture, 'EN', fullhostName + '/Shared/common/styles/dualCalendar.css', customCSSPath, calAnchorObj, position_rel, secondTextField, nSecondTextOffset, '', '', null, ''); } function printTSGTourCalendar( eventIn, editControlId, hostName, calAnchorObj, position_rel, dateFormat ) { var fullhostName = ''; if ( hostName != null && hostName != '' ) fullhostName = "http://" + hostName; printCalendar( eventIn, editControlId, true, 'EN', fullhostName + '/Shared/common/styles/dualCalendar.css', '', calAnchorObj, position_rel, null, 0, editControlId, '', tdc_dateArray, 'tdc_CalendarDateChosen', dateFormat ); } // inputObj: string that represent's the clientID of the input text where the date will be print out // startingDateField : string of the clientID of the input text where the starting date will be taken to print the calendar starting month // exportFocusToElemID : will export focus to the specified element on click or on tab key function printCalendar(eventIn, inputObj, bSlcOnlyFutureDaysIn, csLanguage, cssLink, _agencyCustomCssLink, calAnchorObj, position_rel, secondTextField, nSecondTextOffset, startingDateField, exportFocusToElemID, enabledDatesArray, functionToCallAfterClose, dateFormatToUse ) { //insure that calendar size is initialized updateFrame( "" ); if (IsNullOrEmpty(dateFormatToUse)) dateFormatToUse = 0; dualCalendarDateFormatID = dateFormatToUse; inputDateField = getElement(inputObj); secondInput = secondTextField; cssCustomLink = cssLink; agencyCustomCssLink = _agencyCustomCssLink; nSecondDateOffset = nSecondTextOffset; var inputDate = ""; // set calendar to the date of this date if(startingDateField != null && startingDateField != "") { inputDate = GetDateFromString(getElement(startingDateField).value); } else { inputDate = GetDateFromString(inputDateField.value); } var CalendarAnchorObject = inputDateField; if ( calAnchorObj != null && calAnchorObj != '' ) CalendarAnchorObject = getElement(calAnchorObj); var inputObjposX = findPosX(CalendarAnchorObject); var inputObjposY = findPosY(CalendarAnchorObject); var newX = 0; var newY = 0; var frame = getIFrame("calFrame"); if( position_rel == POSITION_REL_DOWN_LEFT ) { newX = inputObjposX + CalendarAnchorObject.offsetWidth - CALENDAR_WIDTH; newY = inputObjposY + CalendarAnchorObject.offsetHeight - 30; } else if ( position_rel == POSITION_REL_DOWN_RIGHT ) { newX = inputObjposX + CalendarAnchorObject.offsetWidth + 5; newY = inputObjposY + CalendarAnchorObject.offsetHeight - 30; } else if( position_rel == POSITION_REL_TOP_LEFT ) { newX = inputObjposX + CalendarAnchorObject.offsetWidth - CALENDAR_WIDTH; newY = inputObjposY + CalendarAnchorObject.offsetHeight - 70; } else if ( position_rel == POSITION_REL_TOP_RIGHT ) { newX = inputObjposX + CalendarAnchorObject.offsetWidth + 35; newY = inputObjposY + CalendarAnchorObject.offsetHeight - 115; } else if( position_rel == POSITION_REL_DOWN_HALF_LEFT) { newX = inputObjposX + CalendarAnchorObject.offsetWidth - 50; newY = inputObjposY + CalendarAnchorObject.offsetHeight -30; } else if( position_rel == POSITION_REL_BOTTOM_LEFT_OF_CAL_AT_TOP_LEFT) { newX = inputObjposX + CalendarAnchorObject.offsetWidth - frame.offsetWidth; newY = inputObjposY + CalendarAnchorObject.offsetHeight - frame.offsetHeight; } frame.style.position = "absolute"; frame.style.top = newY + "px"; frame.style.left = newX + "px"; var firstDate = new Date( inputDate ); if ( enabledDatesArray != null && !isValidDate(inputDateField.value)) { firstDate = GetDateFromString( enabledDatesArray[0] ); //alert("first date: "+firstDate); } var csCalendar = HTMLheader(exportFocusToElemID) + buildCalendar(inputDate.getDate(), (inputDate.getMonth()+1), inputDate.getFullYear(), 1, bSlcOnlyFutureDaysIn, csLanguage, exportFocusToElemID, enabledDatesArray, functionToCallAfterClose, firstDate ) + HTMLfooter(); //document.write(csCalendar); // this prints the html code into the page updateFrame( csCalendar ); if (ie) { document.frames['calFrame'].focus( ); } else if (n6) { window['calFrame'].focus( ); } bCalOpen = 1; } function printCalendarForMousePosition(eventIn, inputObj, bSlcOnlyFutureDaysIn, csLanguage, cssLink, _agencyCustomCssLink, calAnchorObj, position_rel, secondTextField, nSecondTextOffset, startingDateField, exportFocusToElemID, enabledDatesArray, functionToCallAfterClose ) { inputDateField = getElement(inputObj); secondInput = secondTextField; cssCustomLink = cssLink; agencyCustomCssLink = _agencyCustomCssLink; exportFocusToElemID = getElement(exportFocusToElemID); nSecondDateOffset = nSecondTextOffset; var inputDate = ""; // set calendar to the date of this date if(startingDateField != null && startingDateField != "") { inputDate = GetDateFromString(getElement(startingDateField).value); } else { inputDate = GetDateFromString(inputDateField.value); } var CalendarAnchorObject = inputDateField; if ( calAnchorObj != null && calAnchorObj != '' ) CalendarAnchorObject = getElement(calAnchorObj); var inputObjposX = mousePositionX;; var inputObjposY = mousePositionY; var newX = 0; var newY = 0; if( position_rel == POSITION_REL_DOWN_LEFT ) { newX = inputObjposX + CalendarAnchorObject.offsetWidth - CALENDAR_WIDTH; newY = inputObjposY + CalendarAnchorObject.offsetHeight - 30; } else if ( position_rel == POSITION_REL_DOWN_RIGHT ) { newX = inputObjposX + CalendarAnchorObject.offsetWidth + 5; newY = inputObjposY + CalendarAnchorObject.offsetHeight - 30; } else if( position_rel == POSITION_REL_TOP_LEFT ) { newX = inputObjposX + CalendarAnchorObject.offsetWidth - CALENDAR_WIDTH; newY = inputObjposY + CalendarAnchorObject.offsetHeight - 70; } else if ( position_rel == POSITION_REL_TOP_RIGHT ) { newX = inputObjposX + CalendarAnchorObject.offsetWidth + 35; newY = inputObjposY + CalendarAnchorObject.offsetHeight - 115; } else if( position_rel == POSITION_REL_DOWN_HALF_LEFT) { newX = inputObjposX + CalendarAnchorObject.offsetWidth - 50; newY = inputObjposY + CalendarAnchorObject.offsetHeight - 30; } var frame = getIFrame("calFrame"); frame.style.position = "absolute"; frame.style.top = newY + "px"; frame.style.left = newX + "px"; var firstDate = new Date( inputDate ); if ( enabledDatesArray != null && !isValidDate(inputDateField.value)) { firstDate = GetDateFromString( enabledDatesArray[0] ); //alert("first date: "+firstDate); } var csCalendar = HTMLheader(exportFocusToElemID) + buildCalendar(inputDate.getDate(), (inputDate.getMonth()+1), inputDate.getFullYear(), 1, bSlcOnlyFutureDaysIn, csLanguage, exportFocusToElemID, enabledDatesArray, functionToCallAfterClose, firstDate ) + HTMLfooter(); //document.write(csCalendar); // this prints the html code into the page updateFrame( csCalendar ); if (ie) { document.frames['calFrame'].focus( ); } else if (n6) { window['calFrame'].focus( ); } bCalOpen = 1; } function printDate(csDate){ inputDateField.value = csDate; var laterDate = GetDateFromString(csDate); laterDate.setDate( laterDate.getDate() + nSecondDateOffset ); if(secondInput != null) { switch(defaultCalendarDateFormatValue[dualCalendarDateFormatID].toLowerCase()) { case "yyyy-mm-dd": case "aaaa-mm-jj": getElement(secondInput).value = laterDate.getFullYear()+"-"+FormatDayToString(laterDate.getMonth()+1)+"-"+FormatDayToString(laterDate.getDate()); break; case "mm-dd-yyyy": case "mm-jj-aaaa": getElement(secondInput).value = FormatDayToString(laterDate.getMonth()+1) + "-" + FormatDayToString(laterDate.getDate()) + "-" + laterDate.getFullYear(); break; default: } } //hideCalendar(); } function prevMonth(csLangIn, bSlcOnlyFutureDaysIn, exportFocusToElemID, enabledDatesArrayParam, functionToCallAfterClose ) { nSlcDay = 1; nSlcMonth--; if(nSlcMonth < 1) { nSlcMonth = 12; nSlcYear--; } var csCalendar = HTMLheader(exportFocusToElemID) + buildCalendar(nSlcDay, nSlcMonth, nSlcYear, 0, bSlcOnlyFutureDaysIn, csLangIn, exportFocusToElemID, enabledDatesArrayParam, functionToCallAfterClose, null) + HTMLfooter(); updateFrame( csCalendar ); // bCalOpen = 0; // clearTimeout(nCalTimeOut); // setTimeout("bCalOpen = 1", 2000); } function nextMonth(csLangIn, bSlcOnlyFutureDaysIn, exportFocusToElemID, enabledDatesArrayParam, functionToCallAfterClose) { nSlcDay = 1; nSlcMonth++; if(nSlcMonth > 12) { nSlcMonth = 1; nSlcYear++; } var csCalendar = HTMLheader(exportFocusToElemID) + buildCalendar(nSlcDay, nSlcMonth, nSlcYear, 0, bSlcOnlyFutureDaysIn, csLangIn, exportFocusToElemID, enabledDatesArrayParam, functionToCallAfterClose, null) + HTMLfooter(); updateFrame( csCalendar ); // bCalOpen = 0; // clearTimeout(nCalTimeOut); // setTimeout("bCalOpen = 1", 2000); } function isDateFutureDay(nDateIn){ if(nDateIn > now) return true; else return false; } function printDateAndClose( _event, csDate, elementIDToSetFocus, functionToCallAfterClose ) { printDate(csDate); SetFocus(elementIDToSetFocus); hideCalendar(); if( functionToCallAfterClose != null && functionToCallAfterClose != undefined && functionToCallAfterClose.length > 0 && functionToCallAfterClose != 'null' && functionToCallAfterClose != 'undefined' ) { var indexOfValue = functionToCallAfterClose.indexOf('('); // if parameters are already appened at the end if(indexOfValue > -1) { eval(functionToCallAfterClose); } else { eval( functionToCallAfterClose + '()' ); } } } function hideCalendar() { ShowSection('calFrame', false); bCalOpen = 0; } function closeCal(){ if(/*divIdCalendar && */bCalOpen) { ShowSection('calFrame', false); // nCalTimeOut = setTimeout("hideCalendar()", 10); GoToNextControl(); } bCalOpen = 0; } function HTMLheader(exportFocusToElemID){ var toReturn = 'Calendar\n\ 0) toReturn += " onkeydown=\"javascript:parent.closeCal();parent.changeFocusOnPressedKey(event, 9, '"+exportFocusToElemID+"');\""; // 9 is the tab key, this function is defined in SearchPanel.js toReturn += '>'; return toReturn; } function HTMLfooter(){ return ''; } var mousePositionX; var mousePositionY; function RegisterMousePosition(){ mousePositionX = 0; mousePositionY = 0; document.onmousemove = MousePosition; } function MousePosition(evt){ if(!evt) evt = window.event; mousePositionX = evt.clientX; mousePositionY = evt.clientY; } function ValidateDateStringWithRegex(_strDate) { var dateRegex = ""; switch(defaultCalendarDateFormatValue[dualCalendarDateFormatID].toLowerCase()) { case "yyyy-mm-dd": case "aaaa-mm-jj": dateRegex = "^((19|20)\\d\\d[-](0[1-9]|1[012])[-](0[1-9]|[12][0-9]|3[01]))|((19|20)\\d\\d(0[1-9]|1[012])(0[1-9]|[12][0-9]|3[01]))$"; break; case "mm-dd-yyyy": case "mm-jj-aaaa": dateRegex = "^((0[1-9]|1[012])[-](0[1-9]|[12][0-9]|3[01])[-](19|20)\\d\\d)|((0[1-9]|1[012])(0[1-9]|[12][0-9]|3[01])(19|20)\\d\\d)$"; break; default: } var strRegex = new RegExp(dateRegex, "gi"); return _strDate.search(strRegex)!=-1; } function DateOfBirth_ClientValidate(source, args) { var now = new Date().getDateOnly(); if(ValidateDateStringWithRegex(args.Value)) { var birthDate = GetDateFromString(args.Value) args.IsValid = birthDate < now; } else { args.IsValid = false; } } function GoToNextControl() { var nbOfElement = 0; if(document.forms["mainform"]!=null)//For the main search { nbOfElement = document.forms["mainform"].elements.length; for( i = 0; i < nbOfElement ; i++ ) { if(document.forms["mainform"].elements[i].id == inputDateField.id) { updateTheFrame = 0; SetFocus(document.forms["mainform"].elements[i]); break; } } } else if(document.forms["Form1"]!=null)//For the search control in the search page { nbOfElement = document.forms["Form1"].elements.length; for( i = 0; i < nbOfElement ; i++ ) { if(document.forms["Form1"].elements[i].id == inputDateField.id) { updateTheFrame = 0; SetFocus(document.forms["Form1"].elements[i]); break; } } } }