function valDateRng(daterng) {
  myOption = -1;
  for (i=0; i<daterng.length; i++) {
    if (daterng[i].checked) {
      myOption = i;
    }
  }
  if (myOption == -1) {
    alert("You must select a date range");
    return ' ';
  }
  return daterng[myOption].value;
}

function stripBlanks(fld) {
  var result = "";
  var c = 0
  for (i=0; i<fld.length; i++) {
    if (fld.charAt(i) != " " || c > 0) {
      result += fld.charAt(i);
      if (fld.charAt(i) != " ")
        c = result.length;
    }
  }
  return result.substr(0,c);
}

var numb = '0123456789';

function isValid(parm,val) {
  if (parm == "") return true;
  for (i=0; i<parm.length; i++) {
    if (val.indexOf(parm.charAt(i),0) == -1)
      return false;
  }
  return true;
}

function isNum(parm) {
  return isValid(parm,numb);
}
var mth = new Array('','january','february','march','april','may','june','july','august','september','october','november','december');
var day = new Array(31,28,31,30,31,30,31,31,30,31,30,31);

function validateDate(fld) {
  var dd, mm, yy;
  var today = new Date;
  var t = new Date;
  fld = stripBlanks(fld);
  if (fld == '')
    return false;
  var d1 = fld.split('\/');
  if (d1.length != 3)
    d1 = fld.split(' ');
  if (d1.length != 3)
    return false;
  dd = d1[1];
  if ( !isNum(dd) )  return false

  mm = d1[0];
  if (!isNum(mm)) {
    var nn = mm.toLowerCase();
    for (var i=1; i < 13; i++) {
      if (nn == mth[i] || nn == mth[i].substr(0,3)) {
        mm = i;
        i = 13;
      }
    }
  }
  if (!isNum(mm)) return false;

  yy = d1[2];
  if ( !isNum(yy) )  return false

  dd = parseFloat(dd);
  mm = parseFloat(mm);
  yy = parseFloat(yy);
  if (yy < 100)
    yy += 2000;
  if (yy < 1582 || yy > 4881)
    return false;

  if (mm == 2 && (yy%400 == 0 || (yy%4 == 0 && yy%100 != 0)))
    day[mm-1]++;
  if (mm < 1 || mm > 12)
    return false;
  if (dd < 1 || dd > day[mm-1])
    return false;
  return true;
}

function isValidEmail2( email ) {
  if ( email.length < 3 ) {
    return false
  }
  var idx = email.indexOf("@")
  return ( email.indexOf("@") > 0 && email.indexOf(".") > idx+1 );
}

function isValidEmail(str) {
  var at="@"
  var dot="."
  var lat=str.indexOf(at)
  var lstr=str.length
  var ldot=str.indexOf(dot)

  // Check that a "@" exists and it is not the first or last character
  if (str.indexOf(at)<=0 || str.indexOf(at)==lstr) {
    return false
  }

  // Check that a "." exists and it is not the first or last character
  if (str.indexOf(dot)<=0 || str.indexOf(dot)==lstr) {
    return false
  }

  // Check for 2nd @
  if (str.indexOf(at,(lat+1))!=-1){
    return false
  }

  if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot) {
    return false
  }

  if (str.indexOf(dot,(lat+2))==-1){
    return false
  }
		
  if (str.indexOf(" ")!=-1){
    return false
  }

  return true					
}

function isRadioSelected(elem) {
}

function getSelectedRadioValue(elemid) {
}

function getSelectedRadioIndex(obj) {
  var len = obj.length
  for (var i=0;i<len;i++) {
    if ( obj[i].checked ) {
      return i
    }
  }
  return -1;
}

function isArray(obj) {
  if ( typeof(obj.length)=="undefined" )
    return false
  else
    return true
}

function isEmpty(elem) {
  if ( elem.type == "text" ) {
    return (elem.value.length==0);
  } else if ( elem.type == "select-one" ) {

  } else if ( isArray(elem) ) {
    // most likely a radio or check box set
    if ( getSelectedRadioIndex(elem) == -1 ) {
      return 1;
    }
    return 0; 
  } else {
    alert( typeof(elem.length) + " " + typeof(elem) )
  }
  return 0
}
