/*
  JS useful key tools
	  Ladislav Capka lcapka@gmail.com
*/
function strpos(haystack, needle, offset){ var i = (haystack+'').indexOf( needle, offset ); return i===-1 ? false : i; }

function getkey(e){
  if(window.event)return window.event.keyCode; // IE
  else if(e.which)return e.which; // NS/FF/O
  return undefined;
}

function RealOnly(e,o,signed){
  var k=getkey(e);
  if(k!=undefined){
    var c=String.fromCharCode(k);
    if(signed==undefined) var r=/\d/;
    else var r=/[\d-]/;
    if(o!==undefined){
      var s=/^[-]?\d*$/;
      if((k==46) || (k==44))return s.test(o.value);
    }
    return r.test(c) || (k==8) || (k==27) || (k==13) || (e.ctrlKey && ((k==99)||(k==67)||(k==118)||(k==86)));
  }else return true;
}

function RealOnlyValid(e,signed){
  if(e===undefined)return;
  if(signed==undefined) var r=/^\d*$/,s=/^\d+[,\.]\d+$/;
  else var r=/^[-]?\d*$/,s=/^[-]?\d+[,\.]\d+$/;
  e.valid=r.test(e.value) || s.test(e.value);
  if(e.onvalid)e.onvalid(e);
}

function NumOnly(e,signed){
  var k=getkey(e);
  if(k!=undefined){
    var c=String.fromCharCode(k);
    if(signed==undefined) var r=/\d/;
    else var r=/[\d-]/;
    return r.test(c) || (k==8) || (k==27) || (k==13) || (e.ctrlKey && ((k==99)||(k==67)||(k==118)||(k==86)));
  }else return true;
}

function NumOnlyValid(e,signed){
  if(e===undefined)return;
  if(signed==undefined) var r=/^\d*$/;
  else var r=/^[-]?\d*$/;
  e.valid=r.test(e.value);
  if(e.onvalid)e.onvalid(e);
}

function TimeOnly(e){
  var k;
  if(window.event) k=window.event.keyCode; // IE
  else if(e.which) k=e.which; // NS/FF/O
  if (k!=undefined) {
    var c=String.fromCharCode(k);
    var r=/[\d:,\.]/;
    return r.test(c) || (k==8) || (k==27) || (k==13) || (e.ctrlKey && ((k==99)||(k==67)||(k==118)||(k==86)));
  }else return true;
}

function TimeOnlyValid(i){
  if(i===undefined)return;
  if(i.value===undefined)return;
  var v=true,s=i.value;
  if(s.length>0){
    // Valid date 2:01:45
    s=s.replace(/[,\.]/,':');
    i.value=s;
    var timecheck=/^(\d\d?):(\d\d)$/;
    v=timecheck.test(s);
    if(v){
      h=s.replace(timecheck,"$1");
      m=s.replace(timecheck,"$2");
      v=(h<=24)&&(h>=0)&&(m>=0)&&(m<=59);
      if(h==24)v&=(m==0);
    }
  }
  i.valid=v;
  if(i.onvalid)i.onvalid(i);
}
