function cs_bDateSelectorNextPrevious(prefix,monthadd,firstDayWeek)
{
var dt=new Date(document.getElementById(prefix+"bDateSelectorTMCalendar").value*1000);
var dstart=new Date(dt.getFullYear(),dt.getMonth()+monthadd,1);
cs_bDateSelectorUpdate(prefix,dstart,firstDayWeek);
}
function cs_bDateSelectorBlank(prefix,firstDayWeek)
{
//document.getElementById(prefix+"bDateSelectorTMCalendar").value="";
document.getElementById(prefix).value="";
document.getElementById(prefix+"bDateSelectorYear").value="";
document.getElementById(prefix+"bDateSelectorMonth").value="";
document.getElementById(prefix+"bDateSelectorDay").value="";
if(document.getElementById(prefix+"bDateSelectorHour")){
document.getElementById(prefix+"bDateSelectorHour").value="";
}
if(document.getElementById(prefix+"bDateSelectorMinute")){
document.getElementById(prefix+"bDateSelectorMinute").value="";
}
cs_bDateSelectorSHCal(prefix,1);
}
function cs_bDateSelectorUpdate(prefix,dDate,firstDayWeek)
{
var today=new Date();
var todayDay=today.getDate();
var todayMonth=today.getMonth();
var todayYear=today.getYear();
var dstart=new Date(dDate.getFullYear(),dDate.getMonth(),1);
var selectedDate= new Date(document.getElementById(prefix+"bDateSelectorTM").value*1000);
var aSelectedTM=document.getElementById(prefix+"bDateaSelectedTM").value;
var line;
var col;
var tmstart=Date.parse(dstart)/1000;
document.getElementById(prefix+"bDateSelectorTMCalendar").value=tmstart;
document.getElementById(prefix+"bDateSelectorHeadMonth").innerHTML=""+(dstart.getMonth()+1)+"/"+dstart.getFullYear()+"";
//Recuperation des style
var classTD=document.getElementById(prefix+"bDateSelectorTDClass").value;
var classTDOut=document.getElementById(prefix+"bDateSelectorTDOutClass").value;
var classTDSelected=document.getElementById(prefix+"bDateSelectorTDSelectedClass").value;
var classTDToday=document.getElementById(prefix+"bDateSelectorTDTodayClass").value;
var styleBorderTD=document.getElementById(prefix+"bDateSelectorTDStyleBorder").value;
var styleBorderTDSelected=document.getElementById(prefix+"bDateSelectorTDSelectedStyleBorder").value;
var styleBorderTDToday=document.getElementById(prefix+"bDateSelectorTDTodayStyleBorder").value;
var styleBCKTD=document.getElementById(prefix+"bDateSelectorTDStyleBCK").value;
var styleBCKTDOut=document.getElementById(prefix+"bDateSelectorTDOutStyleBCK").value;
var styleBCKTDSelected=document.getElementById(prefix+"bDateSelectorTDSelectedStyleBCK").value;
var styleBCKTDToday=document.getElementById(prefix+"bDateSelectorTDTodayStyleBCK").value;
var month=dstart.getMonth();
var js;
var tm=tmstart;
var d=dstart;
for(line=0;line<6;line++){
for(col=0;col<=6;col++){
js=col+firstDayWeek;
if(js>6){
js=js-7;
}
cell=document.getElementById(prefix+"bDateSelectorTD"+line+"_"+col);
if(d.getMonth()==month && d.getDay()==js){
cell.innerHTML=d.getDate();
try{
if(classTD==""){
cell.style.border=styleBorderTD;
}
if(styleBCKTD!="" || classTD==""){
cell.style.backgroundColor=styleBCKTD;
}
if(classTD!=""){
cell.className=classTD;
}
}catch(err){}
if(todayDay==d.getDate() && todayMonth==d.getMonth() && todayYear==d.getYear()){
try{
if(styleBorderTDToday!="" || classTDToday==""){
cell.style.border=styleBorderTDToday;
}
if(styleBCKTDToday!="" || classTDToday==""){
cell.style.backgroundColor=styleBCKTDToday;
}
if(classTDToday!=""){
cell.className=classTDToday;
}
}catch(err){}
}
if(aSelectedTM.search((d.getTime()/1000))!=-1){
try{
if(styleBorderTDSelected!="" || classTDSelected==""){
cell.style.border+=" "+styleBorderTDSelected;
}
if(styleBCKTDSelected!="" || classTDSelected==""){
cell.style.backgroundColor+=" "+styleBCKTDSelected;
}
if(classTDSelected!=""){
cell.className=classTDSelected;
}
}catch(err){}
}
//incremente date
d.setDate(d.getDate()+1);
}
else{
try{
cell.innerHTML="";
if(styleBorderTD!="" || classTDOut==""){
cell.style.border=styleBorderTD;
}
if(styleBCKTDOut!="" || classTDOut==""){
cell.style.backgroundColor=styleBCKTDOut;
}
if(classTDOut!=""){
cell.className=classTDOut;
}
}catch(err){}
}
}
}
}
function cs_bDateSelectorSel(cell,prefix,firstDayWeek)
{
var tm=document.getElementById(prefix+"bDateSelectorTMCalendar").value;
var d=new Date (tm*1000);
if(!isNaN(cell.innerHTML)){
var mday=parseInt(cell.innerHTML);
if(!isNaN(mday)){
d.setDate(mday);
cs_bDateSelectorUpdateYMD(prefix,d);
if(document.getElementById(prefix+"bDateSelectorHour")){
d.setHours(document.getElementById(prefix+"bDateSelectorHour").value);
}
if(document.getElementById(prefix+"bDateSelectorMinute")){
d.setMinutes(document.getElementById(prefix+"bDateSelectorMinute").value);
}
cs_bDateSelectorSetDateAndTM(prefix,d.getFullYear(),d.getMonth(),d.getDate(),d.getHours(),d.getMinutes());
cs_bDateSelectorUpdate(prefix,d,firstDayWeek);
return true;
}
else{
return false;
}
}
else{
return false;
}
}
function cs_bDateSelectorSelMonth(prefix,firstDayWeek)
{
var tm=document.getElementById(prefix+"bDateSelectorTMCalendar").value;
var d=new Date (tm*1000);
cs_bDateSelectorUpdateYMD(prefix,d);
if(document.getElementById(prefix+"bDateSelectorHour")){
d.setHours(document.getElementById(prefix+"bDateSelectorHour").value);
}
if(document.getElementById(prefix+"bDateSelectorMinute")){
d.setMinutes(document.getElementById(prefix+"bDateSelectorMinute").value);
}
cs_bDateSelectorSetDateAndTM(prefix,d.getFullYear(),d.getMonth(),d.getDate(),d.getHours(),d.getMinutes());
cs_bDateSelectorUpdate(prefix,d,firstDayWeek);
return true;
}
function cs_bDateSelectorSetSelected(prefix,d,firstDayWeek)
{
cs_bDateSelectorSetDateAndTM(prefix,d.getFullYear(),d.getMonth(),d.getDate(),d.getHours(),d.getMinutes());
cs_bDateSelectorUpdate(prefix,d,firstDayWeek);
cs_bDateSelectorUpdateYMD(prefix,d);
if(document.getElementById(prefix+"bDateSelectorHour")){
var h=d.getHours();
if(h<10){h="0"+h;}
document.getElementById(prefix+"bDateSelectorHour").value=h;
}
if(document.getElementById(prefix+"bDateSelectorMinute")){
var m=d.getMinutes();
if(m<10){m="0"+m;}
document.getElementById(prefix+"bDateSelectorMinute").value=m;
}
}
function cs_bDateSelectorUpdateYMD(prefix,d)
{
if(document.getElementById(prefix+"bDateSelectorYear")){
if(document.getElementById(prefix+"bDateSelectorYear").value!=d.getFullYear()){
document.getElementById(prefix+"bDateSelectorYear").value=d.getFullYear()
}
}
if(document.getElementById(prefix+"bDateSelectorMonth")){
if(document.getElementById(prefix+"bDateSelectorMonth").value!=d.getMonth()+1){
document.getElementById(prefix+"bDateSelectorMonth").value=d.getMonth()+1;
}
}
if(document.getElementById(prefix+"bDateSelectorDay")){
if(document.getElementById(prefix+"bDateSelectorDay").value!=d.getDate()){
document.getElementById(prefix+"bDateSelectorDay").value=d.getDate();
}
}
}
function cs_bDateSelectorSetDateAndTM(prefix,y,m,md,h,min)
{
var d=new Date(y,m,md,h,min);
document.getElementById(prefix+"bDateSelectorTM").value=Date.parse(d)/1000;
var dday=new Date(y,m,md,0,0);
if(document.getElementById(prefix+"bDateaSelectedTM")){
document.getElementById(prefix+"bDateaSelectedTM").value=Date.parse(dday)/1000+",";
}
var yyyy=d.getFullYear();
var mm=(d.getMonth()+1);
if(mm<10){ mm="0"+mm;}
var dd=d.getDate();
if(dd<10){ dd="0"+dd;}
var hh=d.getHours();
if(hh<10){ hh="0"+hh;}
var minmin=d.getMinutes();
if(minmin<10){ minmin="0"+minmin;}
document.getElementById(prefix).value=yyyy+"-"+mm+"-"+dd+" "+hh+":"+minmin+":00";
}
function cs_bDateSelectorUpdateYear(inp,prefix,firstDayWeek)
{
if(inp.value.toString().length>4){
inp.value=inp.value.toString().substr(0,4);
}
var y;
if(inp.value.substr(0,1)=="0" && inp.value.toString().length>1){
y=parseInt(inp.value.substr(1,1));//a cause de 0 qui sont interpreté comme un signe hexa ou octal
inp.value=y;
}
else{
y=parseInt(inp.value);
}
if(!isNaN(y)){
if(y.toString().length==4){
var tm=document.getElementById(prefix+"bDateSelectorTM").value;
var d=new Date (tm*1000);
d.setFullYear(y);
cs_bDateSelectorSetDateAndTM(prefix,d.getFullYear(),d.getMonth(),d.getDate(),d.getHours(),d.getMinutes());
cs_bDateSelectorUpdate(prefix,d,firstDayWeek);
cs_bDateSelectorUpdateYMD(prefix,d);
return true;
}
else{
return false;
}
}
else{
inp.value="";
return false;
}
}
function cs_bDateSelectorUpdateMonth(inp,prefix,firstDayWeek)
{
if(inp.value.toString().length>2){
inp.value=inp.value.toString().substr(0,2);
}
var m;
if(inp.value.substr(0,1)=="0" && inp.value.toString().length>1){
m=parseInt(inp.value.substr(1,1));//a cause de 0 qui sont interpreté comme un signe hexa ou octal
}
else{
m=parseInt(inp.value);
}
if(!isNaN(m)){
if(m>12){
inp.value=12;
m=12;
}
if(m>0 && m<=12){
var tm=document.getElementById(prefix+"bDateSelectorTM").value;
var d=new Date (tm*1000);
d.setMonth(m-1);
cs_bDateSelectorSetDateAndTM(prefix,d.getFullYear(),d.getMonth(),d.getDate(),d.getHours(),d.getMinutes());
cs_bDateSelectorUpdate(prefix,d,firstDayWeek);
cs_bDateSelectorUpdateYMD(prefix,d);
return true;
}
else{
return false;
}
}
else{
inp.value="";
return false;
}
}
function cs_bDateSelectorUpdateDay(inp,prefix,firstDayWeek)
{
if(inp.value.toString().length>2){
inp.value=inp.value.toString().substr(0,2);
}
var day;
if(inp.value.substr(0,1)=="0" && inp.value.toString().length>1){
day=parseInt(inp.value.substr(1,1));//a cause de 0 qui sont interpreté comme un signe hexa ou octal
}
else{
day=parseInt(inp.value);
}
if(!isNaN(day)){
if(day>31){
inp.value=30;
day=30;
}
if(day>0 && day<=31){
var tm=document.getElementById(prefix+"bDateSelectorTM").value;
var d=new Date (tm*1000);
d.setDate(day);
cs_bDateSelectorSetDateAndTM(prefix,d.getFullYear(),d.getMonth(),d.getDate(),d.getHours(),d.getMinutes());
cs_bDateSelectorUpdate(prefix,d,firstDayWeek);
cs_bDateSelectorUpdateYMD(prefix,d);
return true;
}
else{
return false;
}
}
else{
inp.value="";
return false;
}
}
function cs_bDateSelectorUpdateHour(inp,prefix,firstDayWeek)
{
if(inp.value.toString().length>2){
inp.value=inp.value.toString().substr(0,2);
}
var h;
if(inp.value.substr(0,1)=="0" && inp.value.toString().length>1){
h=parseInt(inp.value.substr(1,1));//a cause de 0 qui sont interpreté comme un signe hexa ou octal
}
else{
h=parseInt(inp.value);
}
if(!isNaN(h)){
var tm=document.getElementById(prefix+"bDateSelectorTM").value;
var d=new Date (tm*1000);
if(h>23){
inp.value=23;
h=23;
d.setMinutes(59);
}
if(h<0){
inp.value=0;
h=0;
}
d.setHours(h);
cs_bDateSelectorSetDateAndTM(prefix,d.getFullYear(),d.getMonth(),d.getDate(),d.getHours(),d.getMinutes());
return true;
}
else{
inp.value="";
return false;
}
}
function cs_bDateSelectorUpdateMinute(inp,prefix,firstDayWeek)
{
if(inp.value.toString().length>2){
inp.value=inp.value.toString().substr(0,2);
}
var m;
if(inp.value.substr(0,1)=="0" && inp.value.toString().length>1){
m=parseInt(inp.value.substr(1,1));//a cause de 0 qui sont interpreté comme un signe hexa ou octal
}
else{
m=parseInt(inp.value);
}
if(!isNaN(m)){
if(m>59){
m=59;
inp.value=59;
}
if(m<0){
m=0;
inp.value=0;
}
var tm=document.getElementById(prefix+"bDateSelectorTM").value;
var d=new Date (tm*1000);
d.setMinutes(m);
cs_bDateSelectorSetDateAndTM(prefix,d.getFullYear(),d.getMonth(),d.getDate(),d.getHours(),d.getMinutes());
return true;
}
else{
inp.value="";
return false;
}
}
function cs_bDateSelectorFK(e,prefix)
{
var k;
try{
if(!e){e=window.event;}
k = e.keyCode ? e.keyCode : (e.charCode ? e.charCode : (e.which ? e.which : void 0));
if((k>=48 && k<=57) || (k>=33 && k<=40) || (k>=8 && k<=13)){
//Valid key: 0-9, home,end, page up, del ...
}
else{
return false;
}
}catch(err){}
}
function cs_bDateSelectorDKYMD(e,prefix,firstDayWeek)
{
var k;
try{
if(!e){e=window.event;}
k = e.keyCode ? e.keyCode : (e.charCode ? e.charCode : (e.which ? e.which : void 0));
switch(k)
{
case 39: //fleche droite
var cPos=cs_BDate_GetCaretPosition(e.srcElement);
if(cPos==e.srcElement.value.length){
e.srcElement.nextSibling.nextSibling.focus();
}
break;
case 37: //fleche gauche
var cPos=cs_BDate_GetCaretPosition(e.srcElement);
if(cPos==0){
try{
e.srcElement.previousSibling.previousSibling.focus();
}
catch(err){}
}
break;
case 68: //d et D
//set date to now
var d=new Date ();
cs_bDateSelectorSetSelected(prefix,d,firstDayWeek);
break;
case 109: //-
var tm=document.getElementById(prefix+"bDateSelectorTM").value;
var d=new Date (tm*1000);
d.setDate(d.getDate()-1);
cs_bDateSelectorSetSelected(prefix,d,firstDayWeek);
break;
case 107: //+
var tm=document.getElementById(prefix+"bDateSelectorTM").value;
var d=new Date (tm*1000);
d.setDate(d.getDate()+1);
cs_bDateSelectorSetSelected(prefix,d,firstDayWeek);
break;
}
}catch(err){}
return true;
}
function cs_bDateSelectorDKHM(e,prefix,firstDayWeek)
{
var k;
try{
if(!e){e=window.event;}
k = e.keyCode ? e.keyCode : (e.charCode ? e.charCode : (e.which ? e.which : void 0));
switch(k)
{
case 68: //d et D
//set date to now
var d=new Date ();
cs_bDateSelectorSetSelected(prefix,d,firstDayWeek);
break;
case 109: //-
var tm=document.getElementById(prefix+"bDateSelectorTM").value;
var d=new Date (tm*1000);
d.setMinutes(d.getMinutes()-1);
cs_bDateSelectorSetSelected(prefix,d,firstDayWeek);
break;
case 107: //+
var tm=document.getElementById(prefix+"bDateSelectorTM").value;
var d=new Date (tm*1000);
d.setMinutes(d.getMinutes()+1);
cs_bDateSelectorSetSelected(prefix,d,firstDayWeek);
break;
}
}catch(err){}
return true;
}
function cs_bDateSelectorSHCal(prefix,fh)
{
if(fh!=1 && document.getElementById(prefix+"SHCal").style.display=="none"){
document.getElementById(prefix+"SHCal").style.display="block";
document.getElementById(prefix+"SHCal").focus();
cs_IEFWELT(document.getElementById(prefix+"SHCal"),1);
}
else{
document.getElementById(prefix+"SHCal").style.display="none";
cs_IEFWELT(document.getElementById(prefix+"SHCal"),0);
}
}
function cs_bDateSelectorSHHM(prefix,fh)
{
var oSBHM=document.getElementById(prefix+"SHHM");
if(oSBHM.style.display=="none" && fh!=1){
oSBHM.style.display="block";
oSBHM.focus();
if(oSBHM.selectedIndex>=0){
var hhmm;
if(document.getElementById(prefix+"bDateSelectorHour").value==""){
var cd= new Date();
hhmm=cd.getHours();
if(cd.getHours()<10){hhmm="0"+hhmm;}
var m=cd.getMinutes();
if(m<10){m="0"+m;}
hhmm+=" : "+m;
}
else{
hhmm=document.getElementById(prefix+"bDateSelectorHour").value+" : "+document.getElementById(prefix+"bDateSelectorMinute").value;
}
cs_bDateSelectorSHHM_set_closest(prefix,hhmm);
}
//oSBHM.options[0].focus();
}
else{
oSBHM.style.display="none";
}
}
function cs_bDateSelectorSHHM_set_closest(prefix,hhmm)
{
try{
var oSBHM=document.getElementById(prefix+"SHHM");
var oOpts=oSBHM.options;
if(oOpts.length>0){
t=0;
var oO=oOpts[t];
while(t<(oOpts.length-1) && oO.value