// Copyright 2003, 2004 Peter L. Blum, All Rights Reserved, www.PeterBlum.com
// Peter's Date Package Release 1.1.7
var gLastOnKeyDown = 0; var gPassThroughKey = false; function DTB_OnKeyPress(pTBId, pBId, pE){if (!gSupportsOnKeyPress)return false;if (gPassThroughKey)return true;if (!gIsNetscapeMoz && gLastOnKeyDown == 0) 
return false;var vShowIt = false;var vTBFld = PDP_GetById(pTBId);if (vTBFld.disabled || vTBFld.readOnly)return false;var vDSep = PDP_GetAtt(vTBFld, "DSep", '/');var vDigitsOnly = PDP_GetAtt(vTBFld, "MonthNames", "0") == "0";var vKC = PDP_GetKeyCode(pE);if ((vKC == null) || (vKC == 0))if (gLastOnKeyDown != 0)vKC = gLastOnKeyDown;elsereturn true; gLastOnKeyDown = 0;var vKCStr = String.fromCharCode(vKC);var vExtChars = "";if (vTBFld.AltParse)vExtChars = PDP_GetAtt(vTBFld, "ExtFilter", ""); var vSKey = PDP_IsShift(pE);var vCKey = PDP_IsCtrl(pE);if ((vKCStr == vDSep) ||((vKC >= 48) &&((vKC <= 57) || !vDigitsOnly)) ||((vExtChars != "") && (vExtChars.indexOf(vKCStr) > -1)) ||(vKC < 30)){ 
vShowIt = true;PDP_SetAtt(vTBFld, "Dirty", true);}else if (!DTB_CommandKeyProcessing(pTBId, pBId,vKC, vSKey, vCKey, false))vShowIt = false;if (!vShowIt)PDP_StopEvent(pE);return vShowIt;} 

function DTB_OnKeyDown(pTBId, pBId, pE){if (!gSupportsOnKeyPress)return false;gPassThroughKey = false;var vKC = PDP_GetKeyCode(pE);gLastOnKeyDown = vKC; if (gIsSafari) 
return true;var vTBFld = PDP_GetById(pTBId);if (vTBFld.disabled || vTBFld.readOnly)return vKC == 9; var vDSep = PDP_GetAtt(vTBFld, "DSep", '/');var vKCStr = String.fromCharCode(vKC);var vSKey = PDP_IsShift(pE);var vCKey = PDP_IsCtrl(pE);if (vCKey || ((vKC >= 33) && (vKC <= 47) && (vKCStr != vDSep))){var vShowIt = true;if (!DTB_CommandKeyProcessing(pTBId, pBId,vKC, vSKey, vCKey, !vCKey)){ 
gLastOnKeyDown = 0; PDP_StopEvent(pE);return false; }else{ 
gPassThroughKey = true;return true; }}elsereturn true;} 
function DTB_CommandKeyProcessing(pTBId, pBId,pKeyCode, pShiftKey, pCtrlKey, pIsOnKeyDown){var vTBFld = PDP_GetById(pTBId);var vCmdKeys = PDP_GetAtt(vTBFld, "CmdKeys", "");var vCmdId = PDP_GetCmdId(vCmdKeys, pKeyCode, pCtrlKey, pShiftKey, pIsOnKeyDown);return DTB_RunCmd(pTBId, pBId, vCmdId); } 

function DTB_RunCmd(pTBId, pBId, pCmdID){
var vShowIt = false;switch (pCmdID) 
{case "1":DTB_IncDate(pTBId, false);break;case "2":DTB_IncDate(pTBId, true);break;case "3":DTB_AddMonth(pTBId, -1);break;case "4":DTB_AddMonth(pTBId, 1);break;case "5":DTB_AddMonth(pTBId, -12);break;case "6":DTB_AddMonth(pTBId, 12);break;case "10":DTB_AssignToday(pTBId);break;case "11": 
DTB_PopupTheCalendar(pTBId, pBId);break;case "12": 
MYTB_PopupThePicker(pTBId, pBId);break;case "14":DTB_AssignSpecialDate(pTBId);break;case "21":var vCMFld = PDP_GetById(pTBId + "_CM");if (vCMFld != null)PDP_OpenPopup(pTBId, vCMFld.id, false);break;default:vShowIt = true;break;} 
return vShowIt;} 

function DTB_OnFocus(pTBId, pToolTip){if ((pToolTip != "") && (window.status != null)){window.status = pToolTip;}} 

function DTB_OnChange(pTBId){var vTBFld = PDP_GetById(pTBId);if (vTBFld.value == '') 
{PDP_ClearError(pTBId); return true;}PDP_SetAtt(vTBFld, "Dirty", false);var vShowOnChange = eval(PDP_GetAtt(vTBFld, "ErrAOC", false));var vDate = DTB_GetDateValue(pTBId);if (vDate != null) 
{DTB_SetDateValue(pTBId, vDate, false);DTB_ApplyRangeRules(pTBId, vDate);if (!DTB_TestInRange(pTBId, vDate, vShowOnChange)) 
return false;var vOpenCalendarId = PDP_GetAtt(vTBFld, "OCalId", '');if (vOpenCalendarId != "")DTB_TransferToCalendar(pTBId, vOpenCalendarId);else 
{var vOpenMYPId = PDP_GetAtt(vTBFld, "OMYPId", '');if (vOpenMYPId != "")MYTB_TransferToPicker(pTBId, vOpenMYPId);}var vOCFN = PDP_GetAtt(vTBFld, "OCFN", '');if (vOCFN != "")eval(vOCFN + "(pTBId, vDate);");return true;}else{PDP_ShowError(pTBId, 1, vShowOnChange);return false;}} 

function DTB_OnBlur(pTBId, pUpdateStatus){if (pUpdateStatus && (window.status != null))window.status = '';var vTBFld = PDP_GetById(pTBId);if (eval(PDP_GetAtt(vTBFld, "Dirty", false))){PDP_SetAtt(vTBFld, "Dirty", false);if (vTBFld.fireEvent != null) 
vTBFld.fireEvent('onChange');else if (document.createEvent != null) 
{var vEvt = document.createEvent('HTMLEvents');vEvt.initEvent('change', true, false);vTBFld.dispatchEvent(vEvt);}else 
{
var vOnChange = vTBFld.getAttribute('onchange');var vOCStr = vOnChange.toString();var vIndex = vOCStr.indexOf('DTB_OnChange');vOCStr = vOCStr.substring(vIndex, vOCStr.length - 1);vIndex = vOCStr.indexOf(')');vOCStr = vOCStr.substring(0, vIndex + 1);eval(vOCStr + ';');}}} 
function DTB_ApplyRangeRules(pTBId, pSourceDate){var vTBFld = PDP_GetById(pTBId);var vSRngId = PDP_GetAtt(vTBFld, "RngSId", "");var vERngId = PDP_GetAtt(vTBFld, "RngEId", "");if (vSRngId != '') 
{var vOtherDate = DTB_GetDateValue(vSRngId);var vMinDays = parseInt(PDP_GetAtt(PDP_GetById(vSRngId), "RngMD", "0"));if ((vOtherDate != null) && (pSourceDate.valueOf() < vOtherDate.valueOf() + (vMinDays * 86400000))) 
{if (vMinDays > 0){var vTicks = pSourceDate.valueOf();vTicks = vTicks - (86400000 * (vMinDays - 1)) - (2 * 3600000); pSourceDate = new Date(vTicks);}DTB_SetDateValue(vSRngId, pSourceDate, false);}}if (vERngId != '') 
{var vOtherDate = DTB_GetDateValue(vERngId);var vMinDays = parseInt(PDP_GetAtt(PDP_GetById(vERngId), "RngMD", "0"));if ((vOtherDate != null) && (pSourceDate.valueOf() + (vMinDays * 86400000)> vOtherDate.valueOf())) 
{if (vMinDays > 0){var vTicks = pSourceDate.valueOf();vTicks = vTicks + (86400000 * vMinDays) + (2 * 3600000); pSourceDate = new Date(vTicks);}DTB_SetDateValue(vERngId, pSourceDate, false);}}} 

function DTB_GetTodayDate(pTBId){var vTBFld = PDP_GetById(pTBId);return new Date(parseInt(PDP_GetAtt(vTBFld, "Today_Year", "0")),parseInt(PDP_GetAtt(vTBFld, "Today_Month", "0")),parseInt(PDP_GetAtt(vTBFld, "Today_Day", "0")));} 

function DTB_GetSpecialDate(pTBId){var vTBFld = PDP_GetById(pTBId);var vYear = PDP_GetAtt(vTBFld, "Special_Year", "");if ((vYear != null) && (vYear != ""))return new Date(parseInt(vYear),parseInt(PDP_GetAtt(vTBFld, "Special_Month", "0")),parseInt(PDP_GetAtt(vTBFld, "Special_Day", "0")));elsereturn null;} 
function DTB_AssignToday(pTBId){if (!PDP_CanEdit(pTBId)) return; var vToday = DTB_GetTodayDate(pTBId);DTB_SetDateValue(pTBId, vToday, true);PDP_GetById(pTBId).select();DTB_ApplyRangeRules(pTBId, vToday);PDP_ClearError(pTBId); } 
function DTB_AssignSpecialDate(pTBId){if (!PDP_CanEdit(pTBId)) return; var vSpecial = DTB_GetSpecialDate(pTBId);if (vSpecial != null){DTB_SetDateValue(pTBId, vSpecial, true);PDP_GetById(pTBId).select();DTB_ApplyRangeRules(pTBId, vSpecial);PDP_ClearError(pTBId); }} 
function DTB_IncDate(pTBId, pForward){if (!PDP_CanEdit(pTBId)) return; var vDate = null;if (PDP_GetById(pTBId).value == '')vDate = DTB_GetTodayDate(pTBId);elsevDate = DTB_GetDateValue(pTBId); if (vDate != null){if (!DTB_TestInRange(pTBId, vDate, true))return false;var vTicks = vDate.valueOf();if (pForward){
vTicks = vTicks + 86400000 + 2 * 3600000; }else{
vTicks = vTicks - (2 * 3600000); }vNewDate = new Date(vTicks); vNewDate = new Date(vNewDate.getFullYear(), vNewDate.getMonth(), vNewDate.getDate()); if (!DTB_TestInRange(pTBId, vNewDate, false)){setTimeout("javascript:PDP_ClearError('" + pTBId + "');", 500); return false;}DTB_SetDateValue(pTBId, vNewDate, true);PDP_GetById(pTBId).select();DTB_ApplyRangeRules(pTBId, vNewDate);return true;} 
else{PDP_ShowError(pTBId, 1, true);return false;}} 
function DTB_AddMonth(pTBId, pNumMonths){if (!PDP_CanEdit(pTBId)) return; var vDate = null;var vTBFld = PDP_GetById(pTBId);if (vTBFld.value == '')vDate = DTB_GetTodayDate(pTBId);elsevDate = DTB_GetDateValue(pTBId); if (vDate != null){if (!DTB_TestInRange(pTBId, vDate, true))return;var vNewDate = PDP_AddMonths(vDate, pNumMonths);if (!DTB_TestInRange(pTBId, vNewDate, false)){setTimeout("javascript: PDP_ClearError('" + pTBId + "');", 500);if (pNumMonths > 0)vNewDate = DTB_GetMaxDate(vTBFld);elsevNewDate = DTB_GetMinDate(vTBFld);}DTB_SetDateValue(pTBId, vNewDate, true);PDP_GetById(pTBId).select();DTB_ApplyRangeRules(pTBId, vNewDate);} 
elsePDP_ShowError(pTBId, 1, true);} 
function DTB_PopupTheCalendar(pTBId, pBId){
var vTBFld = PDP_GetById(pTBId);if (vTBFld.disabled || (vTBFld.readOnly && !eval(PDP_GetAtt(vTBFld, "ROPU", false))))return;if (!DTB_IsEmpty(pTBId)) 
{var vDate = DTB_GetDateValue(pTBId); if (vDate != null){if (!DTB_TestInRange(pTBId, vDate, true))return;DTB_SetDateValue(pTBId, vDate, false); DTB_ApplyRangeRules(pTBId, vDate);}else{ PDP_ShowError(pTBId, 1, true); return; }}
var vCalId = PDP_GetAtt(PDP_GetById(pTBId), "SharedCalId", "");if (vCalId == ""){
PDP_TogglePopup(pBId + "_TG", pBId + "_PN");}else{var vOnPopup = "vResult = DTB_OnPopup('" + pTBId + "','" + pBId +"'); if (vResult) {vResult = CSC_TestInitializing('" + vCalId +"','Still loading. One moment please.');};"; PDP_TogglePopup(pBId + "_TG", vCalId, vOnPopup);}} 

function DTB_IsEmpty(pTBId){var vTBFld = PDP_GetById(pTBId);return (vTBFld.value.length == 0);} 

function DTB_GetDateValue(pTBId){var vTBFld = PDP_GetById(pTBId);if (vTBFld.value.length == 0)return null;var vLastText = PDP_GetAtt(vTBFld, "LastText", "");var vLDTicks = parseInt(PDP_GetAtt(vTBFld, "LastDate", "0"));var vLastDate = (vLDTicks != 0) ? new Date(vLDTicks) : null;if ((vTBFld.value == vLastText) && (vLastDate != null))return vLastDate;PDP_SetAtt(vTBFld, "LastText", vTBFld.value);PDP_SetAtt(vTBFld, "LastDate", 0);var vDate = null; if (vTBFld.AltParse)vDate = vTBFld.AltParse(vTBFld, vTBFld.value, vLastDate);if (vDate == null) 
vDate = DTB_ParseDate(pTBId, vTBFld.value);if (vDate != null) 
{if (vTBFld.style){vTBFld.style.color = PDP_GetAtt(vTBFld, "OrigFC", "");PDP_SetBkColor(vTBFld, PDP_GetAtt(vTBFld, "OrigBC", ""));}PDP_SetAtt(vTBFld, "LastDate", vDate.valueOf());}else if (vTBFld.style){var vForeColor = PDP_GetAtt(vTBFld, "ErrFC",'');var vBackColor = PDP_GetAtt(vTBFld, "ErrBC",'');if (vForeColor != '')vTBFld.style.color = vForeColor;if (vBackColor != '')PDP_SetBkColor(vTBFld, vBackColor);}return vDate;} 

function DTB_ParseDate(pTBId, pText){var vTBFld = PDP_GetById(pTBId);var vDSep = PDP_GetAtt(vTBFld, "DSep", "/");var vDigitsOnly = PDP_GetAtt(vTBFld, "MonthNames", "0") == "0";if (!gSupportsOnKeyPress && vDigitsOnly){
var vSearch = '[\\{0}0-9]+';vSearch = vSearch.replace('{0}', vDSep); exp = new RegExp(vSearch);m = pText.match(exp);if (m == null)return null;}if ((pText.length > 2) && (pText.indexOf(vDSep) == -1)){
pText = DTB_AutoFillInDateSeparators(vTBFld);}var vDate = null;var vToday = DTB_GetTodayDate(pTBId);var vYear = 0;var vMonth = 0;var vDay = 0;var vOK = true;var vTextBoxParts = pText.split(vDSep);var vTextBoxCount = 0;var vDateOrderStr = PDP_GetAtt(vTBFld, "DateOrder", "MM DD YYYY");var vDateOrder = vDateOrderStr.split(" ");for (var vI = 0; vOK && (vTextBoxCount < vTextBoxParts.length) && (vI < vDateOrder.length); vI++){switch (vDateOrder[vI].charAt(0)){case 'D':vDay = PDP_ParseInt(vTextBoxParts[vTextBoxCount]);if (!isNaN(vDay) && (vDay > 0))vTextBoxCount++;elsevOK = false;break;case 'M':
if ((vTextBoxParts.length == 1) && (vDateOrder.length == 3)) break; if (vMonth == 0){if (vTextBoxParts[vTextBoxCount] == '')vMonth = vToday.getMonth() + 1;elsevMonth = DTB_ConvertToMonthNum(vTextBoxParts[vTextBoxCount]); if (isNaN(vMonth)){vMonth = vToday.getMonth() + 1; vTextBoxCount++;}else if ((vMonth <= 12) && (vMonth > 0)) 
vTextBoxCount++;elsevOK = false;}break;case 'Y':
if ((vTextBoxParts.length < 3) && (vDateOrder.length == 3)) break; if (vYear == 0){if (vTextBoxParts[vTextBoxCount] == '')vYear = vToday.getFullYear();elsevYear = PDP_ParseInt(vTextBoxParts[vTextBoxCount]);if (isNaN(vYear)){vYear = vToday.getFullYear(); vTextBoxCount++;}else if (vYear <= 9999) 
{if (vYear < 100){var vCenturyBreak = PDP_GetAtt(vTBFld, "CntBrk", 50);if ((vCenturyBreak == 0) || (vYear < vCenturyBreak))vYear = vYear + 2000;elsevYear = vYear + 1900;}vTextBoxCount++;}elsevOK = false;}break;} 
} 

if (vYear == 0)vYear = vToday.getFullYear();if (vMonth == 0)vMonth = vToday.getMonth() + 1;if (vDay == 0)vDay = 1;if (vOK){vDate = new Date(vYear, vMonth - 1, vDay);if ((vDate.getFullYear() != vYear) || (vDate.getMonth() != (vMonth - 1))){vDate = null;vOK = false;}}return vDate;} 

function DTB_ConvertToMonthNum(pMonthStr){var vChar = pMonthStr.charAt(0);if ((vChar >= '0') && (vChar <= '9'))return PDP_ParseInt(pMonthStr);else if (this.PDP_AbbrevMonths != null){var vMSLen = pMonthStr.length;pMonthStr = pMonthStr.toUpperCase(); for (var vI = 0; vI < PDP_AbbrevMonths.length; vI++){var vAMN = PDP_AbbrevMonths[vI].toUpperCase();if (vMSLen >= vAMN.length){if (pMonthStr.indexOf(vAMN) == 0)return vI + 1;}else if (vAMN.indexOf(pMonthStr) == 0)return vI + 1;}return 0; }else 
return 0;} 

function DTB_SetDateValue(pTBId, pDate, pMarkDirtyB){var vTBFld = PDP_GetById(pTBId);var vResultString = '';if (pDate != null){var vDSep = PDP_GetAtt(vTBFld, "DSep", '/');var vMthNm = PDP_GetAtt(vTBFld, "MonthNames", "0");var vDateOrderStr = PDP_GetAtt(vTBFld, "DateOrder", "MM DD YYYY");var vDateOrder = vDateOrderStr.split(" ");for (var vI = 0; vI < vDateOrder.length; vI++){if (vResultString != '')vResultString = vResultString + vDSep;switch (vDateOrder[vI].charAt(0)){case 'D':if ((vDateOrder[vI].length == 1) || (pDate.getDate() >= 10))vResultString = vResultString + pDate.getDate().toString();else 
vResultString = vResultString + '0' + pDate.getDate().toString();break;case 'M':if (vMthNm != "2") 
{var vMonth = pDate.getMonth() + 1;if ((vDateOrder[vI].length == 1) || (vMonth >= 10))vResultString = vResultString + vMonth.toString();else 
vResultString = vResultString + '0' + vMonth.toString();}else 
vResultString = vResultString + PDP_AbbrevMonths[pDate.getMonth()].toUpperCase();break;case 'Y':var vYear = pDate.getFullYear();if (vDateOrder[vI].length < 4)vYear = vYear % 100;if (vYear >= 10)vResultString = vResultString + vYear.toString();elsevResultString = vResultString + '0' + vYear.toString();break;} 
} 
} 
vTBFld.value = vResultString;if (pMarkDirtyB)PDP_SetAtt(vTBFld, "Dirty", true);} 

function DTB_GetMinDate(pTBFld){var vYear = PDP_GetAtt(pTBFld, "Min_Year", "");if ((vYear != null) && (vYear != "")){return new Date(parseInt(vYear),parseInt(PDP_GetAtt(pTBFld, "Min_Month", "0")),parseInt(PDP_GetAtt(pTBFld, "Min_Day", "0")));}elsereturn null;} 

function DTB_GetMaxDate(pTBFld){var vYear = PDP_GetAtt(pTBFld, "Max_Year", "");if ((vYear != null) && (vYear != "")){return new Date(parseInt(vYear),parseInt(PDP_GetAtt(pTBFld, "Max_Month", "0")),parseInt(PDP_GetAtt(pTBFld, "Max_Day", "0")));}elsereturn null;} 

function DTB_TestInRange(pTBId, pDate, pShowError){var vTBFld = PDP_GetById(pTBId);var vMinDate = DTB_GetMinDate(vTBFld);if (vMinDate != null){if (vMinDate > pDate){PDP_ShowError(pTBId, 2, pShowError);return false;}}var vMaxDate = DTB_GetMaxDate(vTBFld);if (vMaxDate != null){if (vMaxDate < pDate){PDP_ShowError(pTBId, 2, pShowError);return false;}}return true; } 
function DTB_AutoFillInDateSeparators(pTBFld){var vMonthLtrCnt = 0;if (PDP_GetAtt(pTBFld, "MonthNames", "0") != "0"){var vFoundB = false;var vText = pTBFld.value.toUpperCase();for (var vI = 0; vI < vText.length; vI++){var vChar = vText.charAt(vI);if (!((vChar >= '0') && (vChar <= '9'))) 
{vMonthLtrCnt++;vFoundB = true;}else if (vFoundB)break; } 
}var vDateOrderStr = PDP_GetAtt(pTBFld, "DateOrder", "MM DD YYYY");var vDateOrder = vDateOrderStr.split(" ");vElementOffset = new Array();for (vElement = 0; vElement < vDateOrder.length - 1; vElement++){switch (vDateOrder[vElement].charAt(0)){case 'D':vElementOffset[vElement] = 2; break;case 'M':if (vMonthLtrCnt > 0)vElementOffset[vElement] = vMonthLtrCnt;else if (pTBFld.value.length % 2 == 0) 
vElementOffset[vElement] = 2;elsevElementOffset[vElement] = 1;break;case 'Y':
if (pTBFld.value.length >= 5)if (pTBFld.value.length >= 7)vElementOffset[vElement] = 4;elsevElementOffset[vElement] = 2;break;} 
} 

var vDSep = PDP_GetAtt(pTBFld, "DSep", '/');if (vDateOrder.length == 3){vResultText = pTBFld.value.substring(0, vElementOffset[0]) + vDSep + pTBFld.value.substring(vElementOffset[0], vElementOffset[0] + vElementOffset[1]);if (pTBFld.value.length > 4)vResultText = vResultText + vDSep + pTBFld.value.substring(vElementOffset[0] + vElementOffset[1], pTBFld.value.length + 1);}else 
vResultText = pTBFld.value.substring(0, vElementOffset[0]) + vDSep + pTBFld.value.substring(vElementOffset[0], pTBFld.value.length + 1);return vResultText;} 

function DTB_Init(pTBId, pAltParseFN){var vFld = PDP_GetById(pTBId);PDP_SetAtt(vFld, "LastText", vFld.value);var vDate = DTB_GetDateValue(pTBId);PDP_SetAtt(vFld, "LastDate", (vDate != null) ? vDate.valueOf() : 0); vFld.AltParse = eval("new Function('pFld','pVal','pLastDate','return " +pAltParseFN + "(pFld,pVal,pLastDate)');");} 

function DTB_OnPopup(pTBId, pBId){
var vTBFld = PDP_GetById(pTBId);if (vTBFld.disabled || (vTBFld.readOnly && !eval(PDP_GetAtt(vTBFld, "ROPU", false))))return false;var vSuccess = false;var vCalId = PDP_GetAtt(vTBFld, "SharedCalId", "");if (vCalId == "")vCalId = pBId + "_PN";var vCal = PDP_GetById(vCalId);if (vCal.style && (vCal.style.visibility == 'hidden')){
vCal.TBId = pTBId;vSuccess = DTB_TransferToCalendar(pTBId, vCalId);}return vSuccess;} 

function DTB_TransferToCalendar(pTBId, pCalendarId){var vSuccess = true;if (DTB_IsEmpty(pTBId))CSC_SetNoSelection(pCalendarId, true, false);else{var vDate = DTB_GetDateValue(pTBId);if (vDate != null)if (DTB_TestInRange(pTBId, vDate, false))CSC_SetDate(pCalendarId, vDate.getFullYear(), vDate.getMonth(), vDate.getDate(), true, false);elseCSC_SetNoSelection(pCalendarId, true, false); else{PDP_ShowError(pTBId, 1, true);vSuccess = false;}}return vSuccess;} 

function DTB_TransferCalendarToTextBox(pTBId, pCalendarId){if (pTBId == "")pTBId = PDP_GetById(pCalendarId).TBId;var vDate = CSC_GetDate(pCalendarId);DTB_SetDateValue(pTBId, vDate, true);DTB_OnBlur(pTBId, true);var vTBFld = PDP_GetById(pTBId);if (vTBFld.focus && vTBFld.select){vTBFld.focus();vTBFld.select();}} 

function DTB_ValidatorEvaluateIsValid(pVFld){
var vTBID = PDP_GetAtt(pVFld, "controltovalidate", '');if (PDP_GetById(vTBID).value == '')return true;return DTB_GetDateValue(vTBID) != null;} 

function DTB_MinMaxEvaluateIsValid(pVFld){var vTBID = PDP_GetAtt(pVFld, "controltovalidate", '');if (PDP_GetById(vTBID).value == '')return true;var vDate = DTB_GetDateValue(vTBID);if (vDate != null) 
{return DTB_TestInRange(vTBID, vDate, false);}elsereturn true; } 

function DTB_CompareEvaluateIsValid(pVFld){
var vStartDate = DTB_GetValFldDate(pVFld, "controltovalidate");var vEndDate = DTB_GetValFldDate(pVFld, "controlhookup");if ((vStartDate == null) || (vEndDate == null))return true; vStartDate = vStartDate.valueOf();vEndDate = vEndDate.valueOf();return DTB_ValOpCompare(pVFld, vStartDate, vEndDate);} 

function DTB_DiffEvaluateIsValid(pVFld){var vStartDate = DTB_GetValFldDate(pVFld, "controltovalidate");var vEndDate = DTB_GetValFldDate(pVFld, "controlhookup");if ((vStartDate == null) || (vEndDate == null))return true; var vDateDiff = Math.abs(vStartDate.valueOf() - vEndDate.valueOf()) / 86400000; vDateDiff = Math.round(vDateDiff);var vNumDays = parseInt(PDP_GetAtt(pVFld, "NumDays", "0"));return DTB_ValOpCompare(pVFld, vDateDiff, vNumDays);} 

function DTB_GetValFldDate(pVFld, pAtt){var vTBID = PDP_GetAtt(pVFld, pAtt, '');if (PDP_GetById(vTBID).value == '')return null;return DTB_GetDateValue(vTBID); } 

function DTB_ValOpCompare(pVFld, pFirst, pSecond){var vResult = true; switch (PDP_GetAtt(pVFld, "operator", "Equal")){case "Equal":vResult = pFirst == pSecond;break;case "NotEqual":vResult = pFirst != pSecond;break;case "GreaterThan":vResult = pFirst > pSecond;break;case "GreaterThanEqual":vResult = pFirst >= pSecond;break;case "LessThan":vResult = pFirst < pSecond;break;case "LessThanEqual":vResult = pFirst <= pSecond;break;} 
return vResult;} 

function MYTB_PopupThePicker(pTBId, pBId){if (!PDP_CanEdit(pTBId)) return; if (!DTB_IsEmpty(pTBId)) 
{var vDate = DTB_GetDateValue(pTBId); if (vDate != null){if (!DTB_TestInRange(pTBId, vDate, true))return;DTB_SetDateValue(pTBId, vDate, true);DTB_ApplyRangeRules(pTBId, vDate);}else{ PDP_ShowError(pTBId, 1, true); return; }}var vButtonFld = PDP_GetById(pBId);if (MYTB_OnPopup(pTBId, pBId)) 
PDP_TogglePopup(pBId + "_TG", pBId + "_PN");} 
function MYTB_OnPopup(pTBId, pBId){var vSuccess = false;var vMYPId = pBId + "_PN";var vMYP = PDP_GetById(vMYPId);if (vMYP.style && (vMYP.style.visibility == 'hidden')){vSuccess = MYTB_TransferToPicker(pTBId, vMYPId);}return vSuccess;} 

function MYTB_TransferToPicker(pTBId, pMYPId){var vSuccess = true;if (DTB_IsEmpty(pTBId))MYP_SelectMonthYear(pMYPId, 0, 0);else{var vDate = DTB_GetDateValue(pTBId);if (vDate != null)if (DTB_TestInRange(pTBId, vDate, false))MYP_SelectMonthYear(pMYPId, vDate.getMonth() + 1, vDate.getFullYear());elseMYP_SelectMonthYear(pMYPId, 0, 0); else{PDP_ShowError(pTBId, 1, true);vSuccess = false;}}return vSuccess;} 

function MYTB_TransferMonthYearToTextBox(pTBId, pMYPId){var vMonth = MYP_GetMonth(pMYPId);var vYear = MYP_GetYear(pMYPId);var vCurDate = DTB_GetDateValue(pTBId);if (vMonth == 0)vMonth = vCurDate.getMonth() + 1;if (vYear == 0)vYear = vCurDate.getFullYear();var vDate = new Date(vYear, vMonth - 1, 1);DTB_SetDateValue(pTBId, vDate, true);DTB_OnBlur(pTBId, true);var vTBFld = PDP_GetById(pTBId);if (vTBFld.focus && vTBFld.select){vTBFld.focus();vTBFld.select();}} 

function DTB_SetDateYMD(pTBId, pYear, pMonth, pDay, pMarkDirtyB){DTB_SetDateValue(pTBId, new Date(pYear, pMonth - 1, pDay), pMarkDirtyB);}