  var aNumber=new Array();
  
  aNumber[48]="0";
  aNumber[49]="1";
  aNumber[50]="2";
  aNumber[51]="3";
  aNumber[52]="4";
  aNumber[53]="5";
  aNumber[54]="6";
  aNumber[55]="7";
  aNumber[56]="8";
  aNumber[57]="9";
  
  function doGetCaretPosition (ctrl) 
   {
  	var CaretPos = 0;
  	// IE Support
  	if (document.selection) 
     {
  		ctrl.focus ();
  		var Sel = document.selection.createRange ();
  		Sel.moveStart ('character', -ctrl.value.length);
  		CaretPos = Sel.text.length;
  	 }
  	// Firefox support
  	else if (ctrl.selectionStart || ctrl.selectionStart == '0')
  		CaretPos = ctrl.selectionStart;
  
  	return (CaretPos);
   }

  function doGetSelectionPosition (ctrl) 
   {
  	var CaretPos = 0;
  	// IE Support
  	if (document.selection) 
     {
  		ctrl.focus ();
  		var Sel = document.selection.createRange ();
      var selLength=Sel.text.length;
  		Sel.moveStart ('character', -ctrl.value.length);
  		CaretPos = Sel.text.length;
      if(selLength>0) //есть выделение вернём его первую позицию
       {
        CaretPos = CaretPos-selLength;
       }
  	 }
  	// Firefox support
  	else if (ctrl.selectionStart || ctrl.selectionStart == '0')
  		CaretPos = ctrl.selectionStart;
  
  	return (CaretPos);
   }
   
function setCaretPosition(ctrl, pos)
 {	
  if(ctrl.setSelectionRange)	
    {		
      ctrl.focus();		
      ctrl.setSelectionRange(pos,pos);	
    }	
  else 
    if (ctrl.createTextRange) 
     {		
      var range = ctrl.createTextRange();		
      range.collapse(true);		
      range.moveEnd('character', pos);		
      range.moveStart('character', pos);		
      range.select();	
     }
 } 
 
function checkInputTime(obj,e)
 {
  var ch,l;
  var str=obj.value;
  var pos=doGetSelectionPosition(obj);
  var ins=true;

  //получим код нажатой клавиши    
  if(window.event) {keynum = e.keyCode}
  else { if(e.which) {keynum = e.which} }
    
  if(str.length>=5) {ins=false;}
  //alert(keynum);
  //пропустим клавиши навигации
  if(keynum<38){return true;}
  
  //alert(aNumber[keynum]);
  //alert(pos);
  //return false;
  var new_pos=pos+1;
    
  if(pos==0)
   {
    //ага мы в первой позиции тут может быть только 0 1 2
    //проверим что в первую позицию вводится цифрра и если нет то запретим
    if(!(keynum>=48 && keynum<=50)){return false;}
    //если строка избыточна = подменим первый символ
    if(!ins){obj.value=aNumber[keynum]+str.substr(1);}
   }
     
  if(pos==1)
   {
    //ага мы во второй позиции тут может быть любая цифра в слцчае первых 0 и 1 или 0-4 если первая 2
    // получим первый символ
    ch=str.charAt(0);
    //проверим его если неправильный превратим в ноль
    if((ch!="0")&&(ch!="1")&&(ch!="2")){ch="0";}
    
    //alert(ch);
    if((ch=="0")||(ch=="1"))
     {
      if(!(keynum>=48 && keynum<=57)){return false;}
     }
    else 
      if(ch=="2")
       {
        if(!(keynum>=48 && keynum<=52)){return false;}
       }
    //если строка избыточна = подменим второй символ
    if(!ins)
     {
      obj.value=ch+aNumber[keynum]+":"+str.substr(3);
      new_pos++;
     }
   }
     
  if(pos==2)
   {
    //тут однозначно только двоеточие
    //проверим вдруг введена цифра 0-5 добавим её после двоеточия
    ch="";
    l=2;
    if(keynum>=48 && keynum<=53)
     {
      l=1
      ch=aNumber[keynum];
      new_pos++;
     }
    obj.value=str.substr(0,2)+":"+ch+str.substr(3,l);
    ins=false;
   }
    
  if(pos==3)
   {
    //минуты допустимо только 0-5
    if(!(keynum>=48 && keynum<=53)){return false;}
    //если строка избыточна = подменим первый символ
    if(!ins){obj.value=str.substr(0,3)+aNumber[keynum]+str.substr(4);}
   }
    
  if(pos==4)
   {
    //минуты допустимо только 0-5
    if(!(keynum>=48 && keynum<=57)){return false;}
    //если строка избыточна = подменим первый символ
    if(!ins){obj.value=str.substr(0,4)+aNumber[keynum];}
   }

  setCaretPosition(obj,new_pos);
  if(ins){return true;}
  else {return false;}
 }
 
function jfIsEmail(str) {
 var i,len,ch,cl,pp,pe;

 str = str.trim();
 if(str.search('@')<0)return false;

 len=str.length;
 pp=len;
 pe=-1;
 cl=' ';

 for(i=0;i<len;i++) {
   ch=str.charAt(i);
   if(ch=='@' && pe==-1)pe=i;
    else
   if(!((ch>='0' && ch<='9') || (ch>='a' && ch<='z') || (ch>='A' && ch<='Z') || ch=='.' || ch=='-' || ch=='_'))return false;
   if(ch=='.')pp=i;
   if(cl=='.' && ch=='.')return false;
   cl=ch;
 }

 if(!pe || pe>len-5)return false;
 if(str.charAt(0)=='.' || str.charAt(pe-1)=='.' || str.charAt(pe+1)=='.')return false;
 if(pp>len-3)return false; 
  
 return true;
}
 
