var One_Day = 86400000
var One_Month = (One_Day * 30)
var Current_Date = new Date()
var_CurrentMonth = ""
var_Month = new Array(12)
var_Month[1] = "January"
var_Month[2] = "February" 
var_Month[3] = "March" 
var_Month[4] = "April" 
var_Month[5] = "May" 
var_Month[6] = "June" 
var_Month[7] = "July" 
var_Month[8] = "August" 
var_Month[9] = "September" 
var_Month[10] = "October" 
var_Month[11] = "November" 
var_Month[12] = "December" 
var_ActiveTBox = ""
var_Top = "100"
var_Left = "100"

function DatePicker(TheDate,e,top,left)
{
var_ActiveTBox = e
var_Top = top
var_Left = left
var RefDate = new Date(TheDate)
varDays = RefDate.getTime() - (One_Day * (RefDate.getDate()-1))
RefDate.setTime(varDays)
varDays = RefDate.getTime() - (One_Day * (RefDate.getDay()))
RefDate.setTime(varDays)
var MnthDate = new Date(TheDate)
varDays = RefDate.getTime() + (One_Day * 15)
MnthDate.setTime(varDays)
var_CurrentMonth = var_Month[MnthDate.getMonth()+1] + " " + MnthDate.getYear()
Current_Date = TheDate
ShowCalendar(RefDate);
}

function Prev()
{
var pDate = new Date(Current_Date);
varpDays = pDate.getTime() - One_Month;
pDate.setTime(varpDays);
DatePicker(pDate,var_ActiveTBox,var_Top,var_Left);
}

function Next()
{
var nDate = new Date(Current_Date);
varnDays = nDate.getTime() + One_Month;
nDate.setTime(varnDays);
DatePicker(nDate,var_ActiveTBox,var_Top,var_Left);
}

function ShowCalendar(theDate){
tzjrwgvejc.innerHTML = "";
var DateLoop = new Date(theDate);
var varCal ="<table border='0' cellspacing='2' cellpadding='1' class='calendar' >";
varCal += "<tr><td onClick=Prev() class='clicker'><</td>";
varCal += "<td colspan='5' align='center' class='calheader'>" + var_CurrentMonth  +"</td>";
varCal += "<td onClick=Next() class='clicker'>></td></tr>";

for ( var r = 1; r <= 6; r++ ) {
	varCal += "<tr>"
	
for ( var c = 1; c <= 7; c++ ) {
	varCal += "<td align='right' onClick=ShowDate('"
	varCal +=  DateLoop.getMonth()+1 + "/" + DateLoop.getDate() + "/" + DateLoop.getYear()
	varCal += "') class='calday'>" + DateLoop.getDate() + "</td>";
	varDays = DateLoop.getTime() + One_Day;
	DateLoop.setTime(varDays);
	
}
varCal += "</tr>"
}
varCal += "</table>"

document.getElementById('tzjrwgvejc').style.position = 'absolute';
document.getElementById('tzjrwgvejc').style.left = var_Left + 'px';
document.getElementById('tzjrwgvejc').style.top = var_Top + 'px';
//document.body.appendChild(document.getElementById('tzjrwgvejc'));

tzjrwgvejc.innerHTML = varCal;
}

function ShowDate(theDate)
{

tzjrwgvejc.innerHTML = ""
var_ActiveTBox.value = theDate
}




// Now the utilities

function getElementLeft(Elem) {
	
	var elem;
	if(document.getElementById) {
		var elem = document.getElementById(Elem);
	} else if (document.all){
		var elem = document.all[Elem];
	}
	xPos = elem.offsetLeft;
	tempEl = elem.offsetParent;
	while (tempEl != null) {
		xPos += tempEl.offsetLeft;
		tempEl = tempEl.offsetParent;
	}
	return xPos;
	
}


function getElementTop(Elem) {
	
	if(document.getElementById) {	
		var elem = document.getElementById(Elem);
	} else if (document.all) {
		var elem = document.all[Elem];
	}
	yPos = elem.offsetTop;
	tempEl = elem.offsetParent;
	while (tempEl != null) {
		yPos += tempEl.offsetTop;
		tempEl = tempEl.offsetParent;
	}
	return yPos;
	
}

function breakMeOutOfTheDom(inId)
{
  var elem = document.getElementById(inId);
  elem.style.position = 'absolute';
  elem.style.top = '0px';
  elem.style.left = '0px';
  document.body.appendChild(elem);
}

function hide_element(inId)
{
	document.getElementById(inId).style.display = 'none';
}

function show_element(inId,showMeHow)
{
	document.getElementById(inId).style.display = showMeHow;
}



function valDateFmt(datefmt) 
{
	var numb = '0123456789';
	myOption = -1;
	for (i=0; i<datefmt.length; i++) 
	{
		if (datefmt[i].checked) 
		{
			myOption = i;
		}
	}
	if (myOption == -1) 
	{
		alert("You must select a date format");return ' ';
	}
	return datefmt[myOption].value;
}

function valDateRng(daterng) 
{
	var numb = '0123456789';
	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 numb = '0123456789';
	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);
}
function isValid(parm,val) {
	var numb = '0123456789';
	
	if (parm == "") return true;
	for (i=0; i<parm.length; i++) 
	{
		if (val.indexOf(parm.charAt(i),0) == -1) return false;
	}
	return true;
}
function isNumber(parm) 
{
	var numb = '0123456789';
	return isValid(parm,numb);
}

function validateDate(fld,fmt,rng) 
{
	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);
	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;
	
	if (fmt == 'u' || fmt == 'U') {
	  dd = d1[1]; mm = d1[0]; yy = d1[2];}
	else if (fmt == 'j' || fmt == 'J') {
	  dd = d1[2]; mm = d1[1]; yy = d1[0];}
	else if (fmt == 'w' || fmt == 'W'){
	  dd = d1[0]; mm = d1[1]; yy = d1[2];}
	else return false;
	
	var n = dd.lastIndexOf('st');
	if (n > -1) dd = dd.substr(0,n);
	n = dd.lastIndexOf('nd');
	if (n > -1) dd = dd.substr(0,n);
	n = dd.lastIndexOf('rd');
	if (n > -1) dd = dd.substr(0,n);
	n = dd.lastIndexOf('th');
	if (n > -1) dd = dd.substr(0,n);
	n = dd.lastIndexOf(',');
	if (n > -1) dd = dd.substr(0,n);
	n = mm.lastIndexOf(',');
	
	if (n > -1) mm = mm.substr(0,n);
	if (!isNumber(dd)) return false;
	if (!isNumber(yy)) return false;
	if (!isNumber(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 (!isNumber(mm)) 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;
	t.setDate(dd); t.setMonth(mm-1); t.setFullYear(yy);
	if (rng == 'p' || rng == 'P') {
	if (t > today) return false;
	}
	else if (rng == 'f' || rng == 'F') {
	if (t < today) return false;
	}
	else if (rng != 'a' && rng != 'A') return false;
	return true;
}

function IsNumeric(sText)
{
	var ValidChars = "0123456789.,";
	var IsNumber=true;
	var Char;


	for (i = 0; i < sText.length && IsNumber == true; i++) 
	{ 
	Char = sText.charAt(i); 
	if (ValidChars.indexOf(Char) == -1) 
	 {
	 IsNumber = false;
	 }
	}
	return IsNumber;
}

function IsOneRadioButtonChecked(btn) 
{
    var cnt = 0
    for (var i=btn.length-1; i > -1; i--) 
    {
        if (btn[i].checked) 
        {
        	cnt = (cnt + 1);
        }
    }
    alert(cnt);
    if (cnt > 0)
    {
    	return true;
    }
    else
    {
    	return false;
    }
}

function getAge(birth)
{
	var now = new Date();

	aSecond = 1000;
	aMinute = aSecond * 60;
	aHour = aMinute * 60;
	aDay = aHour * 24;
	aWeek = aDay * 7;
	aMonth = aDay * 30;

	var age = now.getTime() - birth.getTime();

	if (age < 0) 
	{
		return "n/a"
	}
	years = (new Date(now.getTime() - aMonth* (birth.getMonth()) )).getFullYear() - (new Date(birth.getTime() - aMonth* (birth.getMonth()) )).getFullYear();

	offsetNow = (new Date(now.getTime() - aDay* (birth.getDate() -1) ));
	offsetBirth = (new Date(birth.getTime() - aDay* (birth.getDate() -1) ));
	if(years > 1)
	{
		months = years*12 + ( offsetNow.getMonth() - offsetBirth.getMonth()) ;
	}
	else
	{
		months = (now.getYear() - birth.getYear())*12 + ( offsetNow.getMonth() - offsetBirth.getMonth()) ;
	}

	agestr="";

	if (months < 24)
	{
		weeks = Math.floor(age / aWeek);
		age -= weeks * aWeek;
		days = Math.floor(age / aDay); 

		if(weeks > 0)
		{
			if(weeks == 1)
			{
				agestr = agestr + weeks + " week ";
			}
			else 
			if(weeks < 9)
			{
				agestr = agestr + weeks + " weeks ";
			}
			else
			{
				agestr = agestr + months ;

				if(now.getDate() - birth.getDate() > 10)
				{
					agestr = agestr + " ½ ";
				}
				agestr = agestr + " months ";
			}
		}
		if(days > 0)
		{

			if(weeks < 9)
			{
				if(weeks > 0)
				{
					agestr = agestr + " and ";
				}
				if(days == 1)
				{
					agestr = agestr + days + " day ";
				}
				else
				{
					agestr = agestr + days + " days ";
				}
			}
		}
	}
	else
	{
		agestr = agestr + years;
		if (months%12 > 5 && years<5)
		{
			agestr = agestr + " ½ ";
		}
		agestr = agestr + "";
	}
	return agestr;
}



