// JavaScript Document

	function checkNumber(input, min, max, msg)
	{
		msg = msg + " field has invalid data: " + input.value;
	
		var str = input.value;
		for (var i = 0; i < str.length; i++) {
			var ch = str.substring(i, i + 1)
			if ((ch < "0" || "9" < ch) && ch != '.') {
				alert(msg);
			return false;
			}
		}
		var num = 0 + str;
		if (num < min || max < num) {
			alert(msg + " not in range [" + min + ".." + max + "]");
			return false;
		}
		input.value = str;
		return true;
	}

	function getMonthLength(month,year,julianFlag)
	{
	   var ml;
	   if(month==1 || month==3 || month==5 || month==7 || month==8 || month==10||month==12)
		  {ml = 31;}
	   else {
		   if(month==2) {
			  ml = 28;
			  if(!(year%4) && (julianFlag==1 || year%100 || !(year%400)))
				 ml++;
		   }
		   else
			  {ml = 30;}
	   }
	   return ml;    
	}

	function computeForm(dob,calFrom)
	{
		var dobArr = dob.split("-");
		var mb = dobArr[1];
		var db = dobArr[2];
		var yb = dobArr[0];
		
		var calfromArr = calFrom.split("-");
		var md = calfromArr[1];
		var dd = calfromArr[2];			
		var yd = calfromArr[0];
		var mLength = 0;  
		var isJulian = 0;
		
		var ma=0;
		var ya=0;
		
		var da = dd-db;
		//alert(da);
		// This is the all-important day borrowing code.
		if(da<0)
		{
			md--;
			// Borrow months from the year if necesssary.
			if(md<1)
			{
				yd--;
			// Determine no. of months in year
				if(mLength)
				{
					md = md + parseInt(365/mLength);
				}
				else
				{
					md = md + 12;
				}
			}
			if(mLength==0) // Use real month length if no fixed
			{              // length is indicated - note that we add a leap day if necessary.				
				ml = getMonthLength(md,yd,isJulian);
				da=da+ml;
			} 
		// For this case, everything works like it did in elementary school.
			else
			{
				da+=mLength;
			} // Use fixed month length
		}
		
		ma = md - mb;
		// Month borrowing code - borrows months from years.
		if(ma<0)
		{
			yd--;
			if(mLength!=0)
			{
				ma=ma+parseInt(365/mLength);
			}
			else
			{				
				ma=ma+12;				
			}
		}
		
		ya = yd - yb;
		document.getElementById("hidAge").value = ya;
		document.getElementById("lblAge").innerHTML = ya + " years, " + ma + " months, " + da + " days";
		document.getElementById("lblAgeErr").innerHTML = "";
		var cat = document.getElementById("hidCat").value;
		if(cat=="S.C." || cat=="S.T.")
		{
			if(ya>24)
			{
				error = "<br><b>Sorry! Your age limit exceeds. We can not accept your form.</b><br>";
				document.getElementById("lblAgeErr").innerHTML = error;
				location.href = "#ageerr";
				return false;
			}			
		}
		else
		{			
			if(ya>22)
			{
				error = "<br><b>Sorry! Your age limit exceeds. We can not accept your form.</b><br>";
				document.getElementById("lblAgeErr").innerHTML = error;
				location.href = "#ageerr";
				return false;
			}
		}
		
	}
