function v_pln(obj,req){
src=trim(obj.value);
if( typeof req == "undefined" )req=false;
if( !req && !src )
  return true;

return v_mark(obj,/^[0-9]+(\,[0-9]?[0-9]?)?$/.test(src));
}

function v_ps(obj){
return v_str(obj,6);
}
   
function v_int(obj,min,max,nOK){
return v_mark(obj,int_val(obj.value,min,max,nOK));
}
 
function v_mail(obj,req){
src=trim(obj.value);
if( typeof req == "undefined" )req=true;
if( !req && src=="" )
  return true;
var regex = /^[a-zA-Z0-9._-]+@([a-zA-Z0-9.-]+\.)+[a-zA-Z0-9.-]{2,4}$/;
return v_mark(obj,regex.test(src));
}
  
function v_str(obj,min,max){
   return v_mark(obj,str_val(obj.value,min,max));
}
  
function isIE(){
  //return true;
  return (navigator.appName.indexOf("Explorer")>0);
  }
  
function v_mark(obj,v){
  if( !v ){obj.style.border="2px solid red";}
  if( v ){
    if( isIE())obj.style.border="2px inset #EEEEEE";
    else
    obj.style.border="";
    }
  return v;
  }
  
function str_val(str,min,max){
  str=trim(str);
  a1=a2=true;
  if( typeof min!="undefined" )a1=(str.length >= min);
  if( typeof max!="undefined" )a2=(str.length <= max);
  return a1 && a2;
}

function int_val(str,min,max,nOK){
str=trim(str);
if( (typeof nOK=="undefined" || nOK ) && !str )
  return true;
i=parseInt(str);
if( str!=i )
  return false;
if( typeof min!="undefined" )a1=(i>=min);
if( typeof max!="undefined" )a2=(i<=max);
return a1 && a2;
}
  
function trim(str, chars) {
    return ltrim(rtrim(str, chars), chars);
}

function ltrim(str, chars) {
    chars = chars || "\\s";
    return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}

function rtrim(str, chars) {
    chars = chars || "\\s";
    return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}

