// Copyright 2002 - 2007 Peter L. Blum, All Rights Reserved, www.PeterBlum.com
// Peter's Date Package Release 2.0.4
function CSC_InitKeys(pCFld){if(gPDP_SupportsFocusOnTable&&(pCFld.attachEvent!=null)){pCFld.attachEvent("onkeydown",new Function("return CSC_OnKeyDownIE('"+pCFld.id+"');"));pCFld.attachEvent("onkeypress",new Function("return CSC_OnKeyPressIE('"+pCFld.id+"');"));pCFld.onfocus=new Function("CSC_SetFocus('"+pCFld.id+"',true);");}else if(pCFld.addEventListener!=null){var vPU=PDP_GetAtt(pCFld,"onpopup","");PDP_SetAtt(pCFld,"onpopup",vPU+"CSC_AttachKeyboardNS();");var vPD=PDP_GetAtt(pCFld,"onpopdown","");PDP_SetAtt(pCFld,"onpopdown",vPD+"CSC_DetachKeyboardNS();");}}function CSC_AttachKeyboardNS(){document.addEventListener("keydown",CSC_OnKeyDownDOM,false);document.addEventListener("keypress",CSC_OnKeyPressDOM,false);}function CSC_DetachKeyboardNS(){document.removeEventListener("keydown",CSC_OnKeyDownDOM,false);document.removeEventListener("keypress",CSC_OnKeyPressDOM,false);}function CSC_OnKeyDownIE(pCalCId){return CSC_OnKeyDownBody(window.event,pCalCId);}function CSC_OnKeyDownDOM(pE){if((gPUNPos==-1)||(gPopupCId[gPUNPos]==""))return false;var vCalCId=gPopupCId[gPUNPos];var vWRT=document.getElementById(vCalCId+"_WeekRows");if(vWRT!=null)return CSC_OnKeyDownBody(pE,vCalCId);else return false;}function CSC_OnKeyDownBody(pE,pCalCId){var vKeyCode=PDP_GetKeyCode(pE);var vShift=PDP_IsShift(pE);var vCtrl=PDP_IsCtrl(pE);var vCal=PDP_GetById(pCalCId);if(vCal.AO.MSC)MSC_TestShift(vCal.AO,pE,vShift);if(vCtrl||((vKeyCode>=33)&&(vKeyCode<=47))||(vKeyCode==27)){if(CSC_ArrowKeyProcessing(vCal,vKeyCode))PDP_StopEvent(pE);else if(CSC_CommandKeyProcessing(vCal,vKeyCode,vShift,vCtrl,!vCtrl))PDP_StopEvent(pE);return false;}else if(vKeyCode==9){if(vCal.AO.IsPopup){PDP_CloseAllPopups();PDP_StopEvent(pE);return false;}}else return true;}function CSC_OnKeyPressIE(pCalCId){return CSC_OnKeyPressBody(window.event,pCalCId);}function CSC_OnKeyPressDOM(pE){if((gPUNPos==-1)||(gPopupCId[gPUNPos]==""))return false;var vCalCId=gPopupCId[gPUNPos];var vWRT=document.getElementById(vCalCId+"_WeekRows");if(vWRT!=null)return CSC_OnKeyPressBody(pE,vCalCId);else return false;}function CSC_OnKeyPressBody(pE,pCalCId){var vKeyCode=PDP_GetKeyCode(pE);var vShift=PDP_IsShift(pE);var vCtrl=PDP_IsCtrl(pE);if(((vKeyCode<33)||(vKeyCode>47))&&(vKeyCode!=27)){var vCal=PDP_GetById(pCalCId);var vTemp=CSC_DigitKeyProcessing(vCal,vKeyCode)||CSC_CommandKeyProcessing(vCal,vKeyCode,vShift,vCtrl,false);}PDP_StopEvent(pE);return false;}function CSC_ArrowKeyProcessing(pCalFld,pKeyCode){var vAO=pCalFld.AO;switch(pKeyCode){case 38:if(vAO.UDMd>0)CSC_MoveSelection(pCalFld.id,-7,vAO.UDMd==2,true);break;case 40:if(vAO.UDMd>0)CSC_MoveSelection(pCalFld.id,7,vAO.UDMd==2,true);break;case 37:if(vAO.LRMd>0)CSC_MoveSelection(pCalFld.id,-1,vAO.LRMd==2,true);break;case 39:if(vAO.LRMd>0)CSC_MoveSelection(pCalFld.id,1,vAO.LRMd==2,true);break;default:return false;}return true;}function CSC_MoveSelection(pCalCId,pNumDays,pChangeViewsAllowed,pFB){var vCal=PDP_GetById(pCalCId);var vAO=vCal.AO;var vMV=CSC_GetFocusMV(vAO);var vMCId=CSC_MVCalId(pCalCId,vMV);if(vMCId==null)return false;var vSelCId=vAO.FirstClSl(vAO);if(!vSelCId){var vRole=99;var vNewSelCId="";if(pNumDays>=0)for(var vPos=1;(vRole>=12)&&(vPos<42);vPos++){vNewSelCId=vMCId+"_"+vPos;var vRole=parseInt(PDP_GetAtt(PDP_GetById(vNewSelCId),"CellRole","0"));}else for(var vPos=42;(vRole>=12)&&(vPos>0);vPos--){vNewSelCId=vMCId+"_"+vPos;var vRole=parseInt(PDP_GetAtt(PDP_GetById(vNewSelCId),"CellRole","0"));}CSC_ChangeDay(pCalCId,vNewSelCId,pFB);return true;}var vCNum=0;var vCellParts=vSelCId.split('_');vCNum=parseInt(vCellParts[vCellParts.length-1]);var vDone=false;vCNum=vCNum+pNumDays;for(;!vDone;){vDone=true;var vNewSelCId=vMCId+"_"+vCNum;var vCM=false;if((vCNum>=1)&&(vCNum<=42)){var vRole=parseInt(PDP_GetAtt(PDP_GetById(vNewSelCId),"CellRole","0"));if(vRole==14)return false;else if((vRole==15)||(vRole==12)){vDone=false;vCNum=vCNum+((pNumDays>0)?1:-1);}else if((vAO.MV>1)&&((vRole==10)||(vRole==11)))vCM=true;else vCM=vRole>=12;}else vCM=true;}if(!vCM){CSC_ChangeDay(pCalCId,vNewSelCId,pFB);}else if(pChangeViewsAllowed){var vDC=PDP_GetById(vSelCId);var vSelUTC=vDC.Date.valueOf()+(pNumDays*86400000);var vDateOfCell=null;var vMinD=PDP_MakeUTCDate(vAO.MinY,vAO.MinM,vAO.MinD);vMinD=vMinD?vMinD.valueOf():0;var vMaxD=PDP_MakeUTCDate(vAO.MaxY,vAO.MaxM,vAO.MaxD);vMaxD=vMaxD?vMaxD.valueOf():0;var vDone=false;for(var vI=0;!vDone;vI++){vDone=true;if((vSelUTC<vMinD)||(vMaxD&&(vMaxD<vSelUTC)))return false;vDateOfCell=new Date(vSelUTC);if(!CSC_DateSelectable(vCal,vDateOfCell.getUTCFullYear(),vDateOfCell.getUTCMonth(),vDateOfCell.getUTCDate()))if(vI<28){vDone=false;vSelUTC+=(pNumDays>0?86400000:-86400000);}else return false;}vAO.SetDV(vAO,null);vAO.SetDV(vAO,vDateOfCell);var vY=vDateOfCell.getUTCFullYear();var vM=vDateOfCell.getUTCMonth();if(!CSC_IsCurrentMonth(vCal,vY,vM))CSC_ViewDate(pCalCId,vY,vM);else CSC_FillInWeekRows(pCalCId,vAO);CSC_DrawDateLabel(vCal);if(pFB)CSC_OnSelectionChanged(vCal,false);}return true;}function CSC_DigitKeyProcessing(pCalFld,pKeyCode){if((pKeyCode>=48)&&(pKeyCode<=57)){var vKeyCodeStr=String.fromCharCode(pKeyCode);CSC_TypeToDate(pCalFld,vKeyCodeStr);return true;}else return false;}function CSC_CommandKeyProcessing(pCalFld,pKeyCode,pShiftKey,pCtrlKey,pIsOnKeyDown){var vR=true;var vAO=pCalFld.AO;var vCmdId=PDP_GetCmdId(vAO.CmdKeys,pKeyCode,pCtrlKey,pShiftKey,pIsOnKeyDown);switch(vCmdId){case"1":CSC_ViewMonthByCount(pCalFld.id,-1);break;case"2":CSC_ViewMonthByCount(pCalFld.id,1);break;case"3":CSC_ViewMonthByCount(pCalFld.id,-vAO.JBy);break;case"4":CSC_ViewMonthByCount(pCalFld.id,vAO.JBy);break;case"10":CSC_ShowToday(pCalFld.id,true);break;case"11":CSC_SetNoSelection(pCalFld.id,false,true);break;case"12":CSC_ShowSelection(pCalFld.id);break;case"13":CSC_Apply(pCalFld.id);break;case"14":CSC_ShowSpecial(pCalFld.id,true);break;case"20":PDP_ClosePopup();break;case"21":PDP_OpenPopup(pCalFld.id+"_Help",pCalFld.id+"_CM",false);break;case"22":CSC_OnPopupMonthYearPicker(pCalFld.id);break;default:vR=false;break;}return vR;}var gPDP_TTD="";var gPDP_TTDTimer=0;function CSC_TypeToDate(pCalFld,pKC){if(gPDP_TTDTimer!=0){window.clearInterval(gPDP_TTDTimer);gPDP_TTDTimer=0;}if(gPDP_TTD.length==2)gPDP_TTD=pKC;else if((pKC!="0")||(gPDP_TTD.length==1))gPDP_TTD=gPDP_TTD+pKC;var vD=parseInt(gPDP_TTD);if(vD>31)vD=parseInt(pKC);if(vD==0){gPDP_TTD="";return;}var vAO=pCalFld.AO;CSC_AssignDate(pCalFld,CSC_GetFocusYear(vAO),CSC_GetFocusMonth(vAO),vD,true);if(gPDP_TTD.length==1)gPDP_TTDTimer=window.setInterval("gPDP_TTD = '';",1500);else gPDP_TTDTimer=0;}function CSC_InitFocus(pAO,pMV){var vWRTbl=pAO.WRTbls[pMV];if(pAO.FBrdC&&pAO.KeyB&&vWRTbl.focus){var vMCId=CSC_MVCalId(pAO.CID,pMV);vWRTbl.onfocus=new Function("CSC_FocusBorderColor('"+vMCId+"','"+pAO.FBrdC+"')");vWRTbl.onblur=new Function("CSC_FocusBorderColor('"+vMCId+"','"+vWRTbl.style.borderTopColor+"')");}}function CSC_SetFocus(pCalCId,pDelay){if(!gPDP_SupportsFocusOnTable)return;var vCal=PDP_GetById(pCalCId);var vAO=vCal.AO;if(!vAO.KeyB)return;if(vCal.style.visibility!="hidden"){if(pDelay&&vAO.TBId&&vCal.NoFocus){var vTB=PDP_GetById(vAO.TBId);if(vTB.AO.APUOn)return;}if(vAO.WRTbls)vAO.WRTbls[CSC_GetFocusMV(vAO)].focus();if(vAO.TBId){var vTB=PDP_GetById(vAO.TBId);vTB.AO.APUOn=0;}}}function CSC_FocusBorderColor(pMVId,pColor){var vWRTbl=PDP_GetById(pMVId+"_WeekRows");vWRTbl.style.borderColor=pColor;}function CSC_GetFocusYear(pAO){var vCD=pAO.GetDV(pAO);return vCD?vCD.getUTCFullYear():pAO.Year;}function CSC_GetFocusMonth(pAO){var vCD=pAO.GetDV(pAO);return vCD?vCD.getUTCMonth():pAO.Month;}function CSC_GetFocusMV(pAO){var vMV=CSC_MVConvMY(PDP_GetById(pAO.CID),CSC_GetFocusYear(pAO),CSC_GetFocusMonth(pAO));return vMV!=null?vMV:0;}