var dtCh= "-";
var minYear=1900;
var maxYear=2100;

function isInteger(s){
var i;
   for (i = 0; i < s.length; i++){   
       // Check that current character is number.
       var c = s.charAt(i);
       if (((c < "0") || (c > "9"))) return false;
   }
   // All characters are numbers.
   return true;
}

function stripCharsInBag(s, bag){
var i;
   var returnString = "";
   // Search through string's characters one by one.
   // If character is not in bag, append to returnString.
   for (i = 0; i < s.length; i++){   
       var c = s.charAt(i);
       if (bag.indexOf(c) == -1) returnString += c;
   }
   return returnString;
}

function daysInFebruary (year){
// February has 29 days in any year evenly divisible by four,
   // EXCEPT for centurial years which are not also divisible by 400.
   return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}
function DaysArray(n) {
for (var i = 1; i <= n; i++) {
this[i] = 31;
if (i==4 || i==6 || i==9 || i==11) {this[i] = 30}
if (i==2) {this[i] = 29}
  } 
  return this;
}

function isDate(dtStr){
var daysInMonth = DaysArray(12);
var pos1=dtStr.indexOf(dtCh);
var pos2=dtStr.indexOf(dtCh,pos1+1);
var strDay=dtStr.substring(0,pos1);
var strMonth=dtStr.substring(pos1+1,pos2);
var strYear=dtStr.substring(pos2+1);
strYr=strYear;
if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1);
if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1);
for (var i = 1; i <= 3; i++) {
if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1);
}
month=parseInt(strMonth);
day=parseInt(strDay);
year=parseInt(strYr);
if (pos1==-1 || pos2==-1){
alert("The date format should be : dd/mm/yyyy")
return false;
}
if (strMonth.length<1 || month<1 || month>12){
alert("Please enter a valid month");
return false;
}
if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
alert("Please enter a valid day");
return false;
}
if (strYear.length != 4 || year<=minYear || minYear>=maxYear){
alert("Please enter a valid 4 digit year between "+minYear+" and "+maxYear);
return false;
}
if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false){
alert("Please enter a valid date");
return false;
}
return true;
}

<!--
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
//-->

function setFav()
{
window.external.AddFavorite('http://www.Lawopera.com','LawOpera.Com');
eval("document.all.tit1.src='http://www.Lawopera.com/images/title.gif'");
}

function setHome(obj)
{
obj.style.behavior='url(#default#homepage)';
obj.setHomePage('www.Lawopera.com');
eval("document.all.tit1.src='http://www.Lawopera.com/images/title.gif'");
}

function isEmail(argvalue) {

  if (argvalue.indexOf(" ") != -1)
    return false;
  else if (argvalue.indexOf("@") == -1)
    return false;
  else if (argvalue.indexOf("@") == 0)
    return false;
  else if (argvalue.indexOf("@") == (argvalue.length-1))
    return false;

  arrayString = argvalue.split("@"); //(works only in netscape3 and above.)
  //var retSize = customSplit(argvalue, "@", "arrayString");

  if (arrayString[1].indexOf(".") == -1)
    return false;
  else if (arrayString[1].indexOf(".") == 0)
    return false;
  else if (arrayString[1].charAt(arrayString[1].length-1) == ".") {
    return false;
  }

  return true;

}

var wx=0;
var hx=0;
 
function getImgW(imgSrc,tdw, tdh)
{
	var newImg = new Image();
	newImg.src = imgSrc;
	var rh = 0;
	var rw = 0;
	var height = newImg.height;
	var width = newImg.width;
	if ( height > width) {
		rh = tdh;
		rw = width / height * rh;
	}else {
		rw = tdw;
		rh = height / width * rw;
	}
	
	//alert('getImgW:rh='+rh+'---rw='+rw);
	return rw;
}
function getImgH(imgSrc,tdw, tdh)
{
	var newImg = new Image();
	newImg.src = imgSrc;
	var rh = 0;
	var rw = 0;
	var height = newImg.height;
	var width = newImg.width;
	if ( height > width) {
		rh = tdh;
		rw = width / height * rh;
	}else {
		rw = tdw;
		rh = height / width * rw;
	}
	//alert('getImgH:rh='+rh+'---rw='+rw);
	return rh;
}

function resizeImg(imgobj,imgSrc,tdw, tdh)
{
	var newImg = new Image();
	newImg.src = imgSrc;
	var rh = 0;
	var rw = 0;
	var height = newImg.height;
	var width = newImg.width;
	if ( height > width) {
		rh = tdh;
		rw = width / height * rh;
	}else {
		rw = tdw;
		rh = height / width * rw;
	}
	//alert('getImgH:height ='+height +'---width='+width);
	//alert('getImgH:rh='+rh+'---rw='+rw);
	imgobj.height=rh;
	imgobj.width=rw;
	return rh;
}