// © 2003 FursDesign™
// JavaScript check date/time procedure

function chkDT(obj,type){
 // ***
 function Two(s){
  var ss = new String(s);return (ss.length<2)?'0'+ss:ss;
 };
 function trim(a){
  for(i=0;i<a.length;i++){  if(a.charAt(i)!=' '){ break; }; };
  for(j=a.length-1;j>=0;j--){  if(a.charAt(j)!=' '){ break; }; };
  return a.substring(i,j+1);
 };
 function chkD(a){
  t = new String('');
  if((a.length==0)||(a=='0000-00-00')){return '';};
  for(i=0;i<a.length;i++){
   if('_/.'.indexOf(a.charAt(i))>0){t+='-';} else {t+=a.charAt(i);}
  };
  day=year=month=-1;
  i=t.indexOf('-');
  if(i>0){
   year = parseInt(t.substring(0,i),10);
   t=t.substring(i+1,255);
   i=t.indexOf('-');
   if(i>0){
    month = parseInt(t.substring(0,i),10)-1;
    day = Math.abs(t.substring(i+1,255));
    if(year<30){ year+=2000; } else { if(year<100){ year+=1900; }; };
   };
  };
  dt = new Date(year, month, day);
  year2 = dt.getYear(); if(year2<100){year2+=1900;};
  if((year2!=year) || (dt.getMonth()!=month) || (dt.getDate()!=day)){
   return -1;
  } else {
   return  (year + '-' + Two(month + 1) + '-' + Two(day));
  };
 };
 function chkT(t){
  hr = mn = sc = 0;
  i = t.indexOf(':');
  if(i>0){
   hr = Math.abs(parseInt(t.substring(0,i),10));
   t = t.substring(i+1,255);
   i = t.indexOf(':');
   if(i<=0){ i=255; };
   mn = Math.abs(parseInt(t.substring(0,i),10));
   sc = Math.abs(t.substring(i+1,255));
  };
  if((hr > 23) || (mn > 59) || (sc >59)){
   return -1;
  } else {
   return (Two(hr) + ':' + Two(mn) + ':' + Two(sc));
  };
 };
 // ***
 v = trim(obj.value);
 res = -1;
 switch(type){
  case 't':res = chkT(v);break;
  case 'd':res = chkD(v);break;
  default:
   if((p = v.indexOf(' ')) <= 0){ p = 255; };
   res = chkD(v.substring(0,p));
   if (parseInt(res)!= -1){
    res2 = chkT(trim(v.substring(p+1,255)));
	if (parseInt(res)!= -1){
	 res += ' ' + res2;
	};
   };
 };
 if(parseInt(res) == -1){
  switch(lang){
   case 'ua':a='Введено некорекну дату та/або час !';break;
   case 'ru':a='Введено некоректная дата и/или время !';break;
   default: a=' Uncorect date and/or time entered !';
  };
  alert(a);
  obj.focus();
 } else {
  obj.value = res;
 };
};
