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){
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('dc_movable_kt8hIXI2AlEq5HQfmn').style.position = 'absolute';
if(dc_movable_kt8hIXI2AlEq5HQfmn.innerHTML == "")
{
	document.getElementById('dc_movable_kt8hIXI2AlEq5HQfmn').style.left = var_Left + 'px';
	document.getElementById('dc_movable_kt8hIXI2AlEq5HQfmn').style.top = var_Top + 'px';
	document.getElementById('dc_movable_kt8hIXI2AlEq5HQfmn').style.zIndex = findHighest_Z();
}
//document.body.appendChild(document.getElementById('dc_movable_kt8hIXI2AlEq5HQfmn'));

dc_movable_kt8hIXI2AlEq5HQfmn.innerHTML = varCal;
}

function ShowDate(theDate)
{

dc_movable_kt8hIXI2AlEq5HQfmn.innerHTML = ""
var_ActiveTBox.value = theDate
}




// Now the utilities

function findHighest_Z() {
     var documentDivs = new Array();
     documentDivs = document.all.tags("DIV");
     var highestZ = 0;
     for (var i = 0; i < documentDivs.length; i++) {
          var Zindex = documentDivs[i].style.zIndex;
          if (Zindex > highestZ) {
               highestZ = Zindex;
          }
     }
     return highestZ;
}


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) 
{
	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;
}



