<!--
//__________________ General __________________

var focusObj=null;		// this variable should be declared before calling validate()

function checkAllowed(str,tf,text,canBeEmpty) {
//  if(focusObj==tf)  return false;	//
  if(! canBeEmpty) {
    if(isEmpty(tf,text))  return false;
  }
  var val=tf.value.toLowerCase()+"";
  str=str.toLowerCase();
  for(var i=0; i<val.length; i++) {
    if(str.indexOf(val.charAt(i)) == -1)  return message(tf,text);
  }
  return true;
}
function message(tf,text,full,noSelect) {		// displays apt error messages
  if(tf.type.indexOf("select") == -1 && !noSelect)  tf.select();
  if(tf.type != "hidden") tf.focus();
  alert((full? text : "Please Enter a valid "+text) +"...");
  return false;
}
function isEmpty(tf,text) {		// checks if textfield tf is empty
  if(focusObj==tf)  return true;
  var val=tf.value+" ";
  while(val.indexOf(" ") != -1)  val=val.replace(" ","");
  while(val.indexOf("\n") != -1)  val=val.replace("\n","");
  while(val.indexOf("\r") != -1)  val=val.replace("\r","");
  if(val=="")  return text ? !message(tf,"Please Enter "+text, true) : true;
  return false;
}
function isNumber(str) {
  return !isNaN(parseInt(str));
}
function checkMaxLength(tf,text,len) {
  if(focusObj==tf)  return true;
  return (tf.value.length > len) ? message(tf,text+" cannot have more than "+len+" characters",true) : true;
}

function getSelValue(sel,noDefaultReturn) {		// returns value of a selection list
  if(sel.selectedIndex==-1)  {
    if(noDefaultReturn || sel.options.length==0)  return "";
    sel.options[0].selected=true;
  }
  return sel.options[sel.selectedIndex].value;
}
function getSelText(sel,noDefaultReturn) {		// returns text of a selection list
  if(sel.selectedIndex==-1)  {
    if(noDefaultReturn || sel.options.length==0)  return "";
    sel.options[0].selected=true;
  }
  return sel.options[sel.selectedIndex].text;
}
function setSelValue(sel,val) {
  for(var i=0; i< sel.options.length; i++) {
    if(sel.options[i].value+"" == val+"") {
      sel.options[i].selected=true;    return;
    }
  }
}
function getValueIndex(sel,val) {
  for(var i=0; i< sel.options.length; i++) {
    if(sel.options[i].value+"" == val+"")  return i;
  }
  return -1;
}

function isInt(str,lbound,ubound) {
  var i=parseInt(str);
  if(isNaN(i))  return false;
  if(i<lbound)  return false;
  if(i>ubound)  return false;
  return true;
}

function checkInt(tf,text,canBeEmpty,lbound,ubound) {
  if(tf==focusObj)  return false;
  if(canBeEmpty && tf.value=="")  return true;
  if(! canBeEmpty)  if(isEmpty(tf,text))  return false;
  var msg=text+ " should be a number";
  var belowMin=false,aboveMax=false;
  var no=parseInt(tf.value);
  if(!isNaN(no)) {
    if(no<lbound)  belowMin=true;
    if(no>ubound)  aboveMax=true;
    if(belowMin) 
      msg+= " greater than "+lbound;
    else if(aboveMax)
      msg+= " less than "+ubound;
    else  {
      tf.value=no;  return true;
    }
  }
  return message(tf,msg,true);
}

//__________________ E-Mail __________________

function emailValidate(tf,canBeEmpty) {
  if(focusObj==tf)  return false;
  var val=tf.value;
  if(canBeEmpty && val=="")  return true;
  var reg1=/^((\w)+[\w-.]*)@((\w)+([\w-.]*)(\w))$/
  var reg2=/(\.)+((\w)*)$/
  arr1=val.match(reg1);
  arr2=val.match(reg2);
  dblDotAfterAt=val.indexOf("..") > val.indexOf("@");
  if(arr1!= null && arr2!=null && !dblDotAfterAt)   return true;
  return message(tf,"E-Mail");
}
//_______________________URL_________________________
function urlValidate(tf,canBeEmpty) {
  var val=tf.value;
  if(canBeEmpty && val=="")  return true;
  var reg1=/^([a-zA-Z]+(:)(\/){2,2}){0,1}((\w)+[\w-.]*)((\w)+([\w-.]*)(\w))$/;
  var reg2=/(\.)+([a-zA-Z]*)$/;
  var arr1=val.match(reg1);
  var arr2=val.match(reg2);
  var dblDot=val.indexOf("..")>=0;
  if(arr1!= null && arr2!=null && !dblDot)  return true;
  return message(tf,"URL");
}
//__________________ Date 3sel__________________

function dateValidate_3sel(dd,mm,yy) {
  if(focusObj==dd)  return false;
  var dd1=getSelValue(dd);
  var mm1=getSelValue(mm)-1;
  var yy1=getSelValue(yy);
  var ddate=new Date(yy1,mm1,dd1);
  if(ddate.getMonth() != mm1)  return message(dd,"Date");
  return true;
}
//__________________ Date 1tf __________________

function dateValidate_1tf(tf,delim,ddmmyy,yyyy) {
  if(focusObj==tf)  return false;
  if(!delim || delim.length!=1)  delim="/";
  var arr=tf.value.split(delim);
  var fm=document.form1;
  if(arr.length != 3)  return message(tf,"Date");
  var dm=ddmmyy ? 1 : 0;
  var dd1=arr[1-dm];
  var mm1=arr[dm-0];
  var yy1=arr[2];
  if(! (isNumber(dd1)&&isNumber(mm1)&&isNumber(yy1) ))  return message(tf, "Date");
  yy1-=0;
  if((yy1>100 && yy1<1800) || yy1<0)
    return message(tf,"Year should be between 1753 and 9999",true);
  if(yyyy && yy1-0 <1000)  return message(tf,"Date has to be in yyyy Format",true);
  var ddate=new Date(yy1,--mm1,dd1);
  if(ddate.getMonth() != mm1)  return message(tf,"Date");
  return true;
}

//__________________ Check Filename __________________
function checkFileName(file,allowed) {
  var path = file.value;
  while(path.indexOf("\\")>=0)  path=path.replace("\\","/");
  var lastslash = path.lastIndexOf("/");
  if(lastslash==-1)
    return message(file,"Invalid file format..",true)
  var fname = path.substring(parseInt(lastslash)+1, path.length);
  //alert(fname);
  var length;
  var dot;
  if(fname.length > 0) {
    dot = fname.lastIndexOf(".");
    if(dot<=0)  return message(file,"Invalid file name..",true)
    length = fname.length;
    fileExt = fname.substr(dot+1,length);
    var arrExt=allowed.toLowerCase().split(",");
    ok=false;  str=""
    for(var i=0; i<arrExt.length; i++) {
      if(arrExt[i] == fileExt)  ok=true;
      str+=" or "+arrExt[i];
    }
    if(!ok)
      return message(file,"Allowed files with extensions "+str.substr(4)+" only",true);
    return true;
  }
  else  return message(file,"Please Enter Filename.");
}

-->