/************************************ NEW CALEDAR SCRIPT STARTS HERE *********************************************/
var topDivZIndex = 9999999;


var weekend = [0,6];

var gNow = new Date();

var vNowDay = gNow.getDate();

var vNowMonth = gNow.getMonth();

var vNowYear = gNow.getFullYear();

DatePicker=function() {

this.name = 'theDatePicker';
// Iframe is set to overcome the issue of DIV over a SELECT in IE
this.iframe_name = 'IFrmHelper'
this.dt = new Date();
this.mosX = 0 ;

this.mosY = 0 ;
document.write('<IFRAME id="' + this.iframe_name + '" style="position:absolute;visibility:hidden;z-index:0;left:0px;top:0px"' +'src="empty.html"></IFRAME>');
document.write('<div id="' + this.name + '" style="position:absolute;visibility:hidden;z-index:0;"' +'class="DatePicker"></div>');
//this.eventmouseUp=this.checkForHide.bindAsEventListener(this);
}

// Detect if the browser is IE or not.
// If it is not IE, we assume that the browser is NS.
var IE = document.all?true:false
// If NS -- that is, !IE -- then set up for mouse capture
if (!IE) document.captureEvents(Event.MOUSEMOVE)
// Temporary variables to hold mouse x-y pos.s
var tempX = 0
var tempY = 0

// Set-up to use getMouseXY function onMouseMove
document.onmousemove = getMouseXY;


// Main function to retrieve mouse x-y pos.s

function getMouseXY(e) {
if (IE) { // grab the x-y pos.s if browser is IE
tempX = event.clientX + document.body.scrollLeft
tempY = event.clientY + document.body.scrollTop
} else { // grab the x-y pos.s if browser is NS
tempX = e.pageX
tempY = e.pageY
}
}


DatePicker.prototype.show = function(dt, x, y, callback_calendar) {

// Event.observe(document, "click",this.eventmouseUp );

/*if ( dt ) this.dt = dt; */
this.dt.setFullYear(vNowYear);

this.dt.setMonth(vNowMonth);

this.callback_calendar = callback_calendar;
// if not rendered yet, do so

/*if ( !this.oDiv ) */
this.render();

// set coordinates
//this.iFrame.style.left = tempX + 1;
//this.iFrame.style.top = tempY + 1;
this.iFrame.style.left = x + 71 + "px";
this.iFrame.style.top = y + 1 + "px";

//this.oDiv.style.left =tempX;
//this.oDiv.style.top=tempY;
this.oDiv.style.left = x + 70 + "px";
this.oDiv.style.top = y + "px";

this.fill();
this.oDiv.style.zIndex = topDivZIndex ;
this.iFrame.style.zIndex = topDivZIndex - 1000;
topDivZIndex += 1;
this.iFrame.style.top = this.oDiv.style.top;
this.iFrame.style.left = this.oDiv.style.left;
this.iFrame.width = this.oDiv.offsetWidth - 1;
this.iFrame.height = this.oDiv.offsetHeight - 1;
this.iFrame.style.visibility = "visible";
this.oDiv.style.visibility = "visible";

this.oMonth.focus();
}

DatePicker.prototype.write_weekend_string = function(vday) {
var i;

// Return special formatting for the weekend day.
for (i=0; i<weekend.length; i++) {
if (vday == weekend[i])
return 1;
}

return 0;
}
DatePicker.prototype.checkForHide = function(event) {
var pX = Event.pointerX(event);
var pY = Event.pointerY(event);
if(!Position.within(this.oDiv, pX, pY))
{
if(Position.withinIncludingScrolloffsets(this.oMonth, pX, pY) || Position.withinIncludingScrolloffsets(this.oYear, pX, pY))
{
}else
{
this.hide()
}
}

}

DatePicker.prototype.hide = function() {
if ( this.oDiv )
{
this.oDiv.style.visibility = "hidden";
this.iFrame.style.visibility = 'hidden';
} }



DatePicker.prototype.render = function() {

var oT1, oTR1, oTD1, oTH1, oTR0, oTD0;

var oT2, oTR2, oTD2;
this.oDiv = document.getElementById(this.name);

this.iFrame = document.getElementById(this.iframe_name);
this.oDiv.innerHTML=""
this.oDiv.appendChild(oT1 = document.createElement("table"));
//alert(this.oDiv.innerHTML)
oT1.border = 1;
oT1.className = "calendartable";

oTR0 = oT1.insertRow(oT1.rows.length);
oTD0 = oTR0.insertCell(oTR0.cells.length);
oTD0.colSpan = 7;

oTD0.title = 'Click here to Close';

oTD0.onclick = function() { this.oDatePicker.hide(); }

oTD0.oDatePicker = this;

oTD0.innerHTML = "close";

oTD0.className = 'DatePickerCloseWindow';

oTR1 = oT1.insertRow(oT1.rows.length);

oTD1 = oTR1.insertCell(oTR1.cells.length);

oTD1.colSpan = 7;

oTD1.border = 1;

oT2 = document.createElement("table");

oTD1.appendChild(oT2);

oT2.border = 0;

oTR2 = oT2.insertRow(oT2.rows.length);

oTD2 = oTR2.insertCell(oTR2.cells.length);

oTD2.title = this.texts.prevMonth;

oTD2.onclick = function() { this.oDatePicker.onPrev(); }

oTD2.oDatePicker = this;

oTD2.innerHTML = "&lt;&lt;";

oTD2.className = 'DatePickerHdrBtn';

oTD2 = oTR2.insertCell(oTR2.cells.length);

this.oMonth = document.createElement("select");

oTD2.appendChild(this.oMonth);

this.oMonth.oDatePicker = this;

this.oMonth.onchange = this.oMonth.onkeyup = function() { this.oDatePicker.onMonth(); }

for ( var i = 0; i < 12; i++ ) {
this.oMonth.add(new Option(this.texts.months[i], i),undefined);
}

oTD2 = oTR2.insertCell(oTR2.cells.length);

this.oYear = document.createElement("select");
oTD2.appendChild(this.oYear);

this.oYear.oDatePicker = this;

this.oYear.onchange = this.oYear.onkeyup = function() { this.oDatePicker.onYear(); }
for ( var i = 1900; i < 2100; i++ ) {
this.oYear.add(new Option(i, i),undefined);
}
//this.oYear.className = 'DatePickerHdrBtn';

oTD2 = oTR2.insertCell(oTR2.cells.length);

oTD2.title = this.texts.nextMonth;

oTD2.onclick = function() { this.oDatePicker.onNext(); }

oTD2.oDatePicker = this;

oTD2.innerHTML = "&gt;&gt;";

oTD2.className = 'DatePickerHdrBtn';

oTR1 = oT1.insertRow(oT1.rows.length);

for ( i = 0; i < 7; i++ ) {

oTH1 = document.createElement("th");

oTR1.appendChild(oTH1);

oTH1.innerHTML = this.texts.days[i];

oTH1.className = 'DatePicker';

}


this.aCells = new Array;

for ( var j = 0; j < 6; j++ ) {

this.aCells.push(new Array);

oTR1 = oT1.insertRow(oT1.rows.length);

for ( i = 0; i < 7; i++ ) {

this.aCells[j][i] = oTR1.insertCell(oTR1.cells.length);

this.aCells[j][i].oDatePicker = this;

this.aCells[j][i].onclick = function() { this.oDatePicker.onDay(this); }

}

}

}



DatePicker.prototype.fill = function() {

// first clear all

this.clear();


// place the dates in the calendar

var nRow = 0;

var d = new Date(this.dt.getTime());

var m = d.getMonth();
var y = d.getFullYear();

for ( d.setDate(1); d.getMonth() == m; d.setTime(d.getTime() + 86400000) ) {

var nCol = d.getDay();

this.aCells[nRow][nCol].innerHTML = d.getDate();
// alert(d.getDate())

/* selected date highlight commented
if ( d.getDate() == this.dt.getDate() && d.getMonth() == this.dt.getMonth() && d.getFullYear() == this.dt.getFullYear()) {

this.aCells[nRow][nCol].className = 'DatePickerBtnSelect';

}*/
if(this.write_weekend_string(nCol)) {
this.aCells[nRow][nCol].className = 'weekendDateSelect';
}

if ( d.getDate() == vNowDay && d.getMonth() == vNowMonth && d.getFullYear() == vNowYear) {

this.aCells[nRow][nCol].className = 'currentDateSelect';

}

if ( nCol == 6 ) nRow++;

}



// set the month combo

this.oMonth.value = m;



// set the year combo
this.oYear.value = y;
//this.oYear.innerHTML = this.dt.getFullYear();

}



DatePicker.prototype.clear = function() {

for ( var j = 0; j < 6; j++ )

for ( var i = 0; i < 7; i++ ) {

this.aCells[j][i].innerHTML = "&nbsp;"

this.aCells[j][i].className = 'DatePickerBtn';

}

}



/////////


DatePicker.prototype.onPrev = function() {

if ( this.dt.getMonth() == 0 ) {

this.dt.setFullYear(this.dt.getFullYear() - 1);

this.dt.setMonth(11);

} else {

this.dt.setMonth(this.dt.getMonth() - 1);

}

this.fill();

}



DatePicker.prototype.onNext = function() {

if ( this.dt.getMonth() == 11 ) {

this.dt.setFullYear(this.dt.getFullYear() + 1);

this.dt.setMonth(0);

} else {

this.dt.setMonth(this.dt.getMonth() + 1);

}

this.fill();

}


DatePicker.prototype.onMonth = function() {

this.dt.setMonth(this.oMonth.value);

this.fill();

}



DatePicker.prototype.onYear = function() {

this.dt.setFullYear(this.oYear.value);

this.fill();

/*var y = parseInt(prompt(this.texts.yearQuestion, this.dt.getFullYear()));

if ( !isNaN(y) ) {

this.dt.setFullYear(parseInt(y));

this.fill();

}
*/

}



DatePicker.prototype.onDay = function(oCell) {

var d = parseInt(oCell.innerHTML);

if ( d > 0 )

{

this.dt.setDate(d);

this.hide();

this.callback_calendar(this.dt);

}

}


DatePicker.prototype.onClose = function() {

this.hide();

}

DatePicker.prototype.texts = {

months: [

"January", "February", "March",

"April", "May", "June",

"July", "August", "September",

"October", "November", "December"

],

days: ["S", "M", "T", "W", "T", "F", "S"],

prevMonth: "Previous Month",

nextMonth: "Next Month",

yearTitle: "Year. Click to modify.",

yearQuestion: "Enter a new year:"

};

function callback_calendar(dt)

{
mon=dt.getMonth()+1;
mon = "" +mon
var day = dt.getDate();
day = "" + day;
yr=dt.getFullYear();
if(mon.length<2)
mon="0" + mon;
if(day.length<2)
day="0" + day;
oDatePicker.client.value =mon + "/" + day + "/" + yr;
oDatePicker.client.focus();

//On IE
if(oDatePicker.client.fireEvent)
oDatePicker.client.fireEvent('onchange');
//On Gecko based browsers
if(document.createEvent)
{
var evt = document.createEvent('HTMLEvents');
if(evt.initEvent)
{
evt.initEvent('change', false, true);
}
if(oDatePicker.client.dispatchEvent)
{
if(oDatePicker.client.onchange)
oDatePicker.client.dispatchEvent(evt);
}
} }

function new_calendar_show(oTxt) {

if ( !document.getElementById ) return;

// since we control the text format in callback_calendar(), getting the date is easy

//var aDt = document.f.d.value.split("/");
var aDt = oTxt.value.split("/");
//alert(aDt)
var dt = null;

if ( aDt && (aDt.length == 3) ) {

dt = new Date(parseInt(aDt[2]),parseInt(aDt[0])-1,parseInt(aDt[1]));

}
// store the textbox for use in the client
//alert(oTxt.screenX)
//alert(oTxt.screenY)


oDatePicker.client = oTxt;
var tmpx = oTxt.offsetLeft;
var tmpy = oTxt.offsetTop + oTxt.offsetHeight ;
var parent = oTxt;
while (parent.offsetParent) {
parent = parent.offsetParent;
tmpx += parent.offsetLeft;
tmpy += parent.offsetTop ;
}

if(document.body.clientHeight>document.body.scrollHeight){
eHeight = document.body.clientHeight;
}
else {
eHeight = document.body.scrollHeight;
}
if (document.body.clientWidth-tmpx<250){
tmpx = tmpx-200;
}

if(eHeight-tmpy<165){
tmpy = tmpy-150;
}

/*
if ((screen.width-window.screenLeft)-tmpx<300){
tmpx = tmpx-200;
}
if((screen.height-window.screenTop)-tmpy<250){
tmpy = tmpy-90;
}
*/

oDatePicker.show(dt, tmpx, tmpy, callback_calendar);
//oDatePicker.show(dt, oTxt.offsetLeft, oTxt.offsetTop, callback_calendar);

}
oDatePicker=new DatePicker();


/************************************ NEW CALEDAR SCRIPT ENDS HERE *********************************************/



//-----------------------------------------------
function checkDates(testdate1,testdate2)
{
var y1=parseInt(testdate1.substring(6),10)
var y2=parseInt(testdate2.substring(6),10)
if (y1 != y2 ) return (y1-y2);
y1=parseInt(testdate1.substring(0,2),10)
y2=parseInt(testdate2.substring(0,2),10)
if (y1 != y2 )return (y1-y2);
y1=parseInt(testdate1.substring(3,5),10)
y2=parseInt(testdate2.substring(3,5),10)
if (y1 != y2 )return (y1-y2);
return 0;
}

var today= '';
var minYear=1900;
var maxYear=9999;
var isNav4 = false, isNav5 = false, isIE4 = false
var strSeperator = "/";
var vDateType = 3;
var vYearType = 4;
var vYearLength = 2;
var err = 0;
if(navigator.appName == "Netscape") {
if (navigator.appVersion < "5") {
isNav4 = true;
isNav5 = false;
}
else
if (navigator.appVersion > "4") {
isNav4 = false;
isNav5 = true;
}
}
else {
isIE4 = true;
}


function DateFormat(vDateName, vDateValue, e, dateCheck, dateType, theField) {
vDateType = dateType;

if (vDateValue == "~") {
alert("AppVersion = "+navigator.appVersion+" \nNav. 4 Version = "+isNav4+" \nNav. 5 Version = "+isNav5+" \nIE Version = "+isIE4+" \nYear Type = "+vYearType+" \nDate Type = "+vDateType+" \nSeparator = "+strSeperator);
vDateName.value = "";
vDateName.focus();
return true;
}
var whichCode = (window.Event) ? e.which : e.keyCode;
if (vDateValue.length > 8 && isNav4) {
if ((vDateValue.indexOf("-") >= 1) || (vDateValue.indexOf("/") >= 1))
return true;
}
var alphaCheck = " abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ/-";
if (alphaCheck.indexOf(vDateValue) >= 1) {
if (isNav4) {
vDateName.value = "";
vDateName.focus();
vDateName.select();
return false;
}
else {
vDateName.value = vDateName.value.substr(0, (vDateValue.length-1));
return false;
}
}
if (whichCode == 8)
return false;
else {
var strCheck = '47,48,49,50,51,52,53,54,55,56,57,58,59,95,96,97,98,99,100,101,102,103,104,105';
if (strCheck.indexOf(whichCode) != -1 || (!whichCode)) {
if (isNav4) {
if (((vDateValue.length < 6 && dateCheck) || (vDateValue.length == 7 && dateCheck)) && (vDateValue.length >=1)) {
message=theField+' is Invalid\n\n Required Format : MM/DD/YYYY';
alert(message);
vDateName.value = "";
vDateName.focus();
vDateName.select();
return false;
}
if (vDateValue.length == 6 && dateCheck) {
var mDay = vDateName.value.substr(2,2);
var mMonth = vDateName.value.substr(0,2);
var mYear = vDateName.value.substr(4,4)
if (mYear.length == 2 && vYearType == 4) {
var mToday = new Date();
var checkYear = mToday.getFullYear() + 30;
var mCheckYear = '20' + mYear;
if (mCheckYear >= checkYear)
mYear = '19' + mYear;
else
mYear = '20' + mYear;
}
var vDateValueCheck = mMonth+strSeperator+mDay+strSeperator+mYear;
if (!dateValid(vDateValueCheck)) {
message=theField+' is Invalid\n\n Required Format : MM/DD/YYYY';
alert(message);

vDateName.value = "";
vDateName.focus();
vDateName.select();
return false;
}
return true;
}
else {
if (vDateValue.length >= 8 && dateCheck) {
if (vDateType == 1) // mmddyyyy
{
var mDay = vDateName.value.substr(2,2);
var mMonth = vDateName.value.substr(0,2);
var mYear = vDateName.value.substr(4,4)
vDateName.value = mMonth+strSeperator+mDay+strSeperator+mYear;
}
if (vDateType == 2) // yyyymmdd
{
var mYear = vDateName.value.substr(0,4)
var mMonth = vDateName.value.substr(4,2);
var mDay = vDateName.value.substr(6,2);
vDateName.value = mYear+strSeperator+mMonth+strSeperator+mDay;
}
if (vDateType == 3) // ddmmyyyy
{
var mMonth = vDateName.value.substr(2,2);
var mDay = vDateName.value.substr(0,2);
var mYear = vDateName.value.substr(4,4)
vDateName.value = mDay+strSeperator+mMonth+strSeperator+mYear;
}
var vDateTypeTemp = vDateType;
vDateType = 1;
var vDateValueCheck = mMonth+strSeperator+mDay+strSeperator+mYear;
if (!dateValid(vDateValueCheck)) {
message=theField+' is Invalid\n\n Required Format : MM/DD/YYYY';
alert(message);
vDateType = vDateTypeTemp;
vDateName.value = "";
vDateName.focus();
vDateName.select();
return false;
}
vDateType = vDateTypeTemp;
return true;
}
else {
if (((vDateValue.length < 8 && dateCheck) || (vDateValue.length == 9 && dateCheck)) && (vDateValue.length >=1)) {
message=theField+' is Invalid\n\n Required Format : MM/DD/YYYY';
alert(message);
vDateName.value = "";
vDateName.focus();
vDateName.select();
return false;
}
}
}
}
else {
if (((vDateValue.length < 8 && dateCheck) || (vDateValue.length == 9 && dateCheck)) && (vDateValue.length >=1)) {
message=theField+' is Invalid\n\n Required Format : MM/DD/YYYY';
alert(message);
vDateName.value = "";
vDateName.focus();
return true;
}
if (vDateValue.length >= 8 && dateCheck) {
if (vDateType == 1) // mm/dd/yyyy
{
var mMonth = vDateName.value.substr(0,2);
var mDay = vDateName.value.substr(3,2);
var mYear = vDateName.value.substr(6,4)
}
if (vDateType == 2) // yyyy/mm/dd
{
var mYear = vDateName.value.substr(0,4)
var mMonth = vDateName.value.substr(5,2);
var mDay = vDateName.value.substr(8,2);
}
if (vDateType == 3) // dd/mm/yyyy
{
var mDay = vDateName.value.substr(0,2);
var mMonth = vDateName.value.substr(3,2);
var mYear = vDateName.value.substr(6,4)
}
if (vYearLength == 4) {
if (mYear.length < 4) {
message=theField+' is Invalid\n\n Required Format : MM/DD/YYYY';
alert(message);
//alert("Invalid Date\n Date Format : MM/DD/YYYY");
vDateName.value = "";
vDateName.focus();
return true;
}
}
//new code
var mtYear = '';
mtYear = mYear;
if (mtYear.length == 2 ) {

var mtToday = new Date();
var checkYear = mtToday.getFullYear() + 30;
var mtCheckYear = '20' + mtYear;
if (mtCheckYear >= checkYear)
mtYear = '19' + mtYear;
else
mtYear = '20' + mtYear;

}



year=parseInt(mtYear);
if (mtYear.length != 4 || year==0 || year<minYear || year>maxYear){
alert("Please enter a valid year");
vDateName.focus();
return true;
}


var vDateTypeTemp = vDateType;
vDateType = 1;
var vDateValueCheck = mMonth+strSeperator+mDay+strSeperator+mYear;
if (mYear.length == 2 && vYearType == 4 && dateCheck) {
var mToday = new Date();
var checkYear = mToday.getFullYear() + 30;
var mCheckYear = '20' + mYear;
if (mCheckYear >= checkYear)
mYear = '19' + mYear;
else
mYear = '20' + mYear;
vDateValueCheck = mMonth+strSeperator+mDay+strSeperator+mYear;
if (vDateTypeTemp == 1) // mm/dd/yyyy
vDateName.value = mMonth+strSeperator+mDay+strSeperator+mYear;
if (vDateTypeTemp == 3) // dd/mm/yyyy
vDateName.value = mDay+strSeperator+mMonth+strSeperator+mYear;
}
if (!dateValid(vDateValueCheck)) {
message=theField+' is Invalid\n\n Required Format : MM/DD/YYYY';
alert(message);
vDateType = vDateTypeTemp;
vDateName.value = "";
vDateName.focus();
return true;
}
vDateType = vDateTypeTemp;
if (vDateTypeTemp == 1) // mm/dd/yyyy
vDateName.value = mMonth+strSeperator+mDay+strSeperator+mYear;
if (vDateTypeTemp == 3) // dd/mm/yyyy
vDateName.value = mDay+strSeperator+mMonth+strSeperator+mYear;
return true;
}
else {
if (vDateType == 1) {
if (vDateValue.length == 2) {
vDateName.value = vDateValue+strSeperator;
}
if (vDateValue.length == 5) {
vDateName.value = vDateValue+strSeperator;
}
}
if (vDateType == 2) {
if (vDateValue.length == 4) {
vDateName.value = vDateValue+strSeperator;
}
if (vDateValue.length == 7) {
vDateName.value = vDateValue+strSeperator;
}
}
if (vDateType == 3) {
if (vDateValue.length == 2) {
vDateName.value = vDateValue+strSeperator;
}
if (vDateValue.length == 5) {
vDateName.value = vDateValue+strSeperator;
}
}
return true;
}
}
if (vDateValue.length == 10&& dateCheck) {
if (!dateValid(vDateName)) {
message=theField+' is Invalid\n\n Required Format : MM/DD/YYYY';
alert(message);
vDateName.focus();
vDateName.select();
}
}
return false;
}
else {
if (isNav4) {
vDateName.value = "";
vDateName.focus();
vDateName.select();
return false;
}
else
{
/* Following line is changed to retain the value when keys other than invalid
(invalid are specified here for validation so, other than invalid are like
CTRL + C, CTRL + V, etc...) are pressed. */
//vDateName.value = vDateName.value.substr(0, (vDateValue.length-1));
vDateName.value = vDateName.value.substr(0, (vDateValue.length));
return false;
}
}
}
}
function dateValid(objName) {
var strDate;
var strDateArray;
var strDay;
var strMonth;
var strYear;
var intday;
var intMonth;
var intYear;
var booFound = false;
var datefield = objName;
var strSeparatorArray = new Array("-"," ","/",".");
var intElementNr;
// var err = 0;
var strMonthArray = new Array(12);
strMonthArray[0] = "Jan";
strMonthArray[1] = "Feb";
strMonthArray[2] = "Mar";
strMonthArray[3] = "Apr";
strMonthArray[4] = "May";
strMonthArray[5] = "Jun";
strMonthArray[6] = "Jul";
strMonthArray[7] = "Aug";
strMonthArray[8] = "Sep";
strMonthArray[9] = "Oct";
strMonthArray[10] = "Nov";
strMonthArray[11] = "Dec";
//strDate = datefield.value;
strDate = objName;
if (strDate.length < 1) {
return true;
}
for (intElementNr = 0; intElementNr < strSeparatorArray.length; intElementNr++) {
if (strDate.indexOf(strSeparatorArray[intElementNr]) != -1) {
strDateArray = strDate.split(strSeparatorArray[intElementNr]);
if (strDateArray.length != 3) {
err = 1;
return false;
}
else {
strDay = strDateArray[0];
strMonth = strDateArray[1];
strYear = strDateArray[2];
}
booFound = true;
}
}
if (booFound == false) {
if (strDate.length>5) {
strDay = strDate.substr(0, 2);
strMonth = strDate.substr(2, 2);
strYear = strDate.substr(4);
}
}
//Adjustment for short years entered
if (strYear.length == 2) {
strYear = '20' + strYear;
}
strTemp = strDay;
strDay = strMonth;
strMonth = strTemp;
intday = parseInt(strDay, 10);
if (isNaN(intday)) {
err = 2;
return false;
}
intMonth = parseInt(strMonth, 10);
if (isNaN(intMonth)) {
for (i = 0;i<12;i++) {
if (strMonth.toUpperCase() == strMonthArray[i].toUpperCase()) {
intMonth = i+1;
strMonth = strMonthArray[i];
i = 12;
}
}
if (isNaN(intMonth)) {
err = 3;
return false;
}
}
intYear = parseInt(strYear, 10);
if (isNaN(intYear)) {
err = 4;
return false;
}
if (intMonth>12 || intMonth<1) {
err = 5;
return false;
}
if ((intMonth == 1 || intMonth == 3 || intMonth == 5 || intMonth == 7 || intMonth == 8 || intMonth == 10 || intMonth == 12) && (intday > 31 || intday < 1)) {
err = 6;
return false;
}
if ((intMonth == 4 || intMonth == 6 || intMonth == 9 || intMonth == 11) && (intday > 30 || intday < 1)) {
err = 7;
return false;
}
if (intMonth == 2) {
if (intday < 1) {
err = 8;
return false;
}
if (LeapYear(intYear) == true) {
if (intday > 29) {
err = 9;
return false;
}
}
else {
if (intday > 28) {
err = 10;
return false;
}
}
}
return true;
}


function LeapYear(intYear) {
if (intYear % 100 == 0) {
if (intYear % 400 == 0) { return true; }
}
else {
if ((intYear % 4) == 0) { return true; }
}
return false;
}

// End -->
var digits = "0123456789";
var defaultEmptyOK = true;

var daysInMonth = makeArrayFromString(31,29,31,30,31,30,31,31,30,31,30,31);

function makeArrayFromString() {
var temp = new Array();
for (var i = 1; i <= makeArrayFromString.arguments.length; i++){
temp[i] = makeArrayFromString.arguments[i];
}
temp[length] = makeArrayFromString.arguments.length;
return temp;
}



function isEmpty(s) {
return ((s == null) || (s.length == 0))
}
function warnInvalid (theField,s){
//alert("55")
alert(s);
theField.value='';
theField.focus();
// theField.select();

return false;
}

function isDigit (c){
return ((c >= "0") && (c <= "9"))
}
function isInteger (s){
var i;
if (isEmpty(s))
if (isInteger.arguments.length == 1) return defaultEmptyOK;
else return (isInteger.arguments[1] == true);
for (i = 0; i < s.length; i++)
{
var c = s.charAt(i);
if (!isDigit(c)) return false;
}
return true;
}
function isSignedInteger (s){
if (isEmpty(s))
if (isSignedInteger.arguments.length == 1) return defaultEmptyOK;
else return (isSignedInteger.arguments[1] == true);
else {
var startPos = 0;
var secondArg = defaultEmptyOK;
if (isSignedInteger.arguments.length > 1)
secondArg = isSignedInteger.arguments[1];
if ( (s.charAt(0) == "-") || (s.charAt(0) == "+") )
startPos = 1;
return (isInteger(s.substring(startPos, s.length), secondArg))
}
}
function isNonnegativeInteger (s){
var secondArg = defaultEmptyOK;
if (isNonnegativeInteger.arguments.length > 1)
secondArg = isNonnegativeInteger.arguments[1];
return (isSignedInteger(s, secondArg)
&& ( (isEmpty(s) && secondArg) || (parseInt (s, 10) >= 0) ) );
}


function isIntegerInRange (s, a, b){
if (isEmpty(s))
if (isIntegerInRange.arguments.length == 1) return defaultEmptyOK;
else return (isIntegerInRange.arguments[1] == true);
if (!isInteger(s, false)) return false;
var num = parseInt (s, 10);
return ((num >= a) && (num <= b));
}
function stripCharsInBag (s, bag){
var i;
var returnString = "";
for (i = 0; i < s.length; i++)
{
// Check that current character isn't whitespace.
var c = s.charAt(i);
if (bag.indexOf(c) == -1) returnString += c;
}
return returnString;
}
function isMonth (s){
if (isEmpty(s))
if (isMonth.arguments.length == 1) return defaultEmptyOK;
else return (isMonth.arguments[1] == true);
return isIntegerInRange (s, 1, 12);
}
function isYear (s){
if (isEmpty(s))
if (isYear.arguments.length == 1) return defaultEmptyOK;
else return (isYear.arguments[1] == true);
if (!isNonnegativeInteger(s)) return false;
else return ((s.length == 4) || (s.length == 2));
}
function isDay (s){
if (isEmpty(s))
if (isDay.arguments.length == 1) return defaultEmptyOK;
else return (isDay.arguments[1] == true);
return isIntegerInRange (s, 1, 31);
}
function daysInFebruary (year){
return ( ((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0) ) ) ? 29 : 28 );
}

function isDate (year, month, day){
var daysInMonth = makeArrayFromString(31,29,31,30,31,30,31,31,30,31,30,31);
if (! (isYear(year, false) && isMonth(month, false) && isDay(day, false))) return false;
var intYear = parseInt(year, 10);
var intMonth = parseInt(month, 10);
var intDay = parseInt(day, 10);
if(intMonth == 1)
return(intDay <= 31);
if (intDay > daysInMonth[intMonth-1]) return false;
if ((intMonth == 2) && (intDay > daysInFebruary(intYear))) return false;
return true;
}

//------------------
function CheckIfLater(date,theDate,msgstr)
{
theField=date
date=date.value;

val=checkDates(date,today)
if(val> 0)
{
message=msgstr+' cannot be later than today';
alert(message);
theField.value="";
theField.focus();
}
}
//-------------------------

//------------------
function CheckIfLess(date,msgstr)
{
theField=date
date=date.value;
var today='09/08/2010';
val=checkDates(date,today)
if(val< 0)
{
message=msgstr+' cannot be less than today';
alert(message);
theField.value="";
theField.focus();
}
}
//-------------------------

//start here
var weekend = [0,6];
var weekendColor = "#E2EBB6";
var fontface = "Verdana";
var fontsize = 2;

var gNow = new Date();
var ggWinCal;
isNav = (navigator.appName.indexOf("Netscape") != -1) ? true : false;
isIE = (navigator.appName.indexOf("Microsoft") != -1) ? true : false;

Calendar.Months = ["January", "February", "March", "April", "May", "June",
"July", "August", "September", "October", "November", "December"];

Calendar.DOMonth = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];

Calendar.lDOMonth = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];

function warnInvalid (theField,s){
alert(s);
theField.value='';
theField.focus();
return false;
}

function Calendar(p_item, p_WinCal, p_month, p_year, p_format) {
if ((p_month == null) && (p_year == null)) return;

if (p_WinCal == null)
this.gWinCal = ggWinCal;
else
this.gWinCal = p_WinCal;

if (p_month == null) {
this.gMonthName = null;
this.gMonth = null;
this.gYearly = true;
} else {
this.gMonthName = Calendar.get_month(p_month);
this.gMonth = new Number(p_month);
this.gYearly = false;
}

this.gYear = p_year;
this.gFormat = p_format;
this.gBGColor = "white";
this.gFGColor = "black";
this.gTextColor = "black";
this.gHeaderColor = "White";
this.gReturnItem = p_item;
}

Calendar.get_month = Calendar_get_month;
Calendar.get_daysofmonth = Calendar_get_daysofmonth;
Calendar.calc_month_year = Calendar_calc_month_year;
Calendar.print = Calendar_print;

function Calendar_get_month(monthNo) {
return Calendar.Months[monthNo];
}

function Calendar_get_daysofmonth(monthNo, p_year) {
if ((p_year % 4) == 0) {
if ((p_year % 100) == 0 && (p_year % 400) != 0)
return Calendar.DOMonth[monthNo];

return Calendar.lDOMonth[monthNo];
} else
return Calendar.DOMonth[monthNo];
}

function Calendar_calc_month_year(p_Month, p_Year, incr) {
var ret_arr = new Array();

if (incr == -1) {
if (p_Month == 0) {
ret_arr[0] = 11;
ret_arr[1] = parseInt(p_Year) - 1;
}
else {
ret_arr[0] = parseInt(p_Month) - 1;
ret_arr[1] = parseInt(p_Year);
}
} else if (incr == 1) {
if (p_Month == 11) {
ret_arr[0] = 0;
ret_arr[1] = parseInt(p_Year) + 1;
}
else {
ret_arr[0] = parseInt(p_Month) + 1;
ret_arr[1] = parseInt(p_Year);
}
}

return ret_arr;
}

function Calendar_print() {
ggWinCal.print();
}

function Calendar_calc_month_year(p_Month, p_Year, incr) {
var ret_arr = new Array();

if (incr == -1) {
if (p_Month == 0) {
ret_arr[0] = 11;
ret_arr[1] = parseInt(p_Year) - 1;
}
else {
ret_arr[0] = parseInt(p_Month) - 1;
ret_arr[1] = parseInt(p_Year);
}
} else if (incr == 1) {
if (p_Month == 11) {
ret_arr[0] = 0;
ret_arr[1] = parseInt(p_Year) + 1;
}
else {
ret_arr[0] = parseInt(p_Month) + 1;
ret_arr[1] = parseInt(p_Year);
}
}

return ret_arr;
}
new Calendar();
Calendar.prototype.getMonthlyCalendarCode = function() {
var vCode = "";
var vHeader_Code = "";
var vData_Code = "";
vCode = vCode + "<TABLE BORDER=0 BGCOLOR=\"" + this.gBGColor + "\">";

vHeader_Code = this.cal_header();
vData_Code = this.cal_data();
vCode = vCode + vHeader_Code + vData_Code;

vCode = vCode + "</TABLE>";

return vCode;
}

Calendar.prototype.show = function() {
var vCode = "";

this.gWinCal.document.open();

this.wwrite("<html>");
this.wwrite("<head><title>Calendar</title>");

this.wwrite("<script>");
this.wwrite("window.onblur=modlesswindow;");
this.wwrite("function modlesswindow()" +
"{" +
"window.focus();" +
"}");
this.wwrite("</script>");

this.wwrite("</head>");

this.wwrite("<body " +
"link=\"" + this.gLinkColor + "\" " +
"vlink=\"" + this.gLinkColor + "\" " +
"alink=\"" + this.gLinkColor + "\" " +
"text=\"" + this.gTextColor + "\" topmargin='5' marginheight='5'>");


this.wwriteA("<FONT FACE='" + fontface + "' SIZE=2><B>");
this.wwriteA(this.gMonthName + " " + this.gYear);
this.wwriteA("</B><BR>");

var prevMMYYYY = Calendar.calc_month_year(this.gMonth, this.gYear, -1);
var prevMM = prevMMYYYY[0];
var prevYYYY = prevMMYYYY[1];

var nextMMYYYY = Calendar.calc_month_year(this.gMonth, this.gYear, 1);
var nextMM = nextMMYYYY[0];
var nextYYYY = nextMMYYYY[1];

this.wwrite("<TABLE style='font-family:Verdana; font-size:10pt; color:#FFFFFF; font-weight:bold' WIDTH='100%' BORDER=0 CELLSPACING=1 CELLPADDING=2 BGCOLOR='#638300'><TR><TD ALIGN=center>");
this.wwrite("[<A HREF=\"" +
"javascript:window.opener.Build(" +
"'" + this.gReturnItem + "', '" + this.gMonth + "', '" + (parseInt(this.gYear)-1) + "', '" + this.gFormat + "'" +
");" +
"\"><b><font face='Verdana' size='2' color='#FFFFFF'><<</font></b><\/A>]</TD><TD ALIGN=center>");
this.wwrite("[<A HREF=\"" +
"javascript:window.opener.Build(" +
"'" + this.gReturnItem + "', '" + prevMM + "', '" + prevYYYY + "', '" + this.gFormat + "'" +
");" +
"\"><b><font face='Verdana' size='2' color='#FFFFFF'><</font></b><\/A>]</TD><TD ALIGN=center>");
this.wwrite("[<A HREF=\"javascript:window.print();\"><b><font face='Verdana' size='2' color='#FFFFFF'>Print</font></b></A>]</TD><TD ALIGN=center>");
this.wwrite("[<A HREF=\"" +
"javascript:window.opener.Build(" +
"'" + this.gReturnItem + "', '" + nextMM + "', '" + nextYYYY + "', '" + this.gFormat + "'" +
");" +
"\"><b><font face='Verdana' size='2' color='#FFFFFF'>></font></b><\/A>]</TD><TD ALIGN=center>");
this.wwrite("[<b><A HREF=\"" +
"javascript:window.opener.Build(" +
"'" + this.gReturnItem + "', '" + this.gMonth + "', '" + (parseInt(this.gYear)+1) + "', '" + this.gFormat + "'" +
");" +
"\"><font face='Verdana' size='2' color='#FFFFFF'>>></font></b><\/A>]</TD></TR></TABLE>");

vCode = this.getMonthlyCalendarCode();
this.wwrite(vCode);

this.wwrite("</b></font></body></html>");
this.gWinCal.document.close();

}

Calendar.prototype.showY = function() {
var vCode = "";
var i;
var vr, vc, vx, vy; // Row, Column, X-coord, Y-coord
var vxf = 285; // X-Factor
var vyf = 200; // Y-Factor
var vxm = 10; // X-margin
var vym; // Y-margin
if (isIE) vym = 75;
else if (isNav) vym = 25;

this.gWinCal.document.open();

this.wwrite("<html>");
this.wwrite("<head><title>Calendar</title>");
this.wwrite("<script>");
this.wwrite("window.onblur=modlesswindow;");
this.wwrite("function modlesswindow()" +
"{" +
"window.focus();" +
"}");
this.wwrite("</script>");

this.wwrite("<style type='text/css'>\n<!--");
for (i=0; i<12; i++) {
vc = i % 3;
if (i>=0 && i<= 2) vr = 0;
if (i>=3 && i<= 5) vr = 1;
if (i>=6 && i<= 8) vr = 2;
if (i>=9 && i<= 11) vr = 3;

vx = parseInt(vxf * vc) + vxm;
vy = parseInt(vyf * vr) + vym;

this.wwrite(".lclass" + i + " {position:absolute;top:" + vy + ";left:" + vx + ";}");
}
this.wwrite("-->\n</style>");
this.wwrite("</head>");
this.wwrite("<body " +
"link=\"" + this.gLinkColor + "\" " +
"vlink=\"" + this.gLinkColor + "\" " +
"alink=\"" + this.gLinkColor + "\" " +
"text=\"" + this.gTextColor + "\" topmargin='5' marginheight='5'>");
this.wwrite("<FONT FACE='" + fontface + "' SIZE=2><B>");
this.wwrite("Year : " + this.gYear);
this.wwrite("</B><BR>");

var prevYYYY = parseInt(this.gYear) - 1;
var nextYYYY = parseInt(this.gYear) + 1;

this.wwrite("<TABLE WIDTH='100%' BORDER=0 CELLSPACING=1 CELLPADDING=0 BGCOLOR='#B7BDD7'><TR><TD ALIGN=center>");
this.wwrite("[<A HREF=\"" +
"javascript:window.opener.Build(" +
"'" + this.gReturnItem + "', null, '" + prevYYYY + "', '" + this.gFormat + "'" +
");" +
"\" alt='Prev Year'><<<\/A>]</TD><TD ALIGN=center>");
this.wwrite("[<A HREF=\"javascript:window.print();\">Print</A>]</TD><TD ALIGN=center>");
this.wwrite("[<A HREF=\"" +
"javascript:window.opener.Build(" +
"'" + this.gReturnItem + "', null, '" + nextYYYY + "', '" + this.gFormat + "'" +
");" +
"\">>><\/A>]</TD></TR></TABLE>");

var j;
for (i=11; i>=0; i--) {
if (isIE)
this.wwrite("<DIV ID=\"layer" + i + "\" CLASS=\"lclass" + i + "\">");
else if (isNav)
this.wwrite("<LAYER ID=\"layer" + i + "\" CLASS=\"lclass" + i + "\">");

this.gMonth = i;
this.gMonthName = Calendar.get_month(this.gMonth);
vCode = this.getMonthlyCalendarCode();
this.wwrite(this.gMonthName + "/" + this.gYear + "<BR>");
this.wwrite(vCode);

if (isIE)
this.wwrite("</DIV>");
else if (isNav)
this.wwrite("</LAYER>");
}

this.wwrite("</font><BR></body></html>");
this.gWinCal.document.close();
}

Calendar.prototype.wwrite = function(wtext) {
this.gWinCal.document.writeln(wtext);
}

Calendar.prototype.wwriteA = function(wtext) {
this.gWinCal.document.write(wtext);
}

Calendar.prototype.cal_header = function() {
var vCode = "";

vCode = vCode + "<TR>";
vCode = vCode + "<TD WIDTH='14%'><FONT SIZE='2' FACE='" + fontface + "' COLOR='" + this.gHeaderColor + "'><B>Sun</B></FONT></TD>";
vCode = vCode + "<TD WIDTH='14%'><FONT SIZE='2' FACE='" + fontface + "' COLOR='" + this.gHeaderColor + "'><B>Mon</B></FONT></TD>";
vCode = vCode + "<TD WIDTH='14%'><FONT SIZE='2' FACE='" + fontface + "' COLOR='" + this.gHeaderColor + "'><B>Tue</B></FONT></TD>";
vCode = vCode + "<TD WIDTH='14%'><FONT SIZE='2' FACE='" + fontface + "' COLOR='" + this.gHeaderColor + "'><B>Wed</B></FONT></TD>";
vCode = vCode + "<TD WIDTH='14%'><FONT SIZE='2' FACE='" + fontface + "' COLOR='" + this.gHeaderColor + "'><B>Thu</B></FONT></TD>";
vCode = vCode + "<TD WIDTH='14%'><FONT SIZE='2' FACE='" + fontface + "' COLOR='" + this.gHeaderColor + "'><B>Fri</B></FONT></TD>";
vCode = vCode + "<TD WIDTH='16%'><FONT SIZE='2' FACE='" + fontface + "' COLOR='" + this.gHeaderColor + "'><B>Sat</B></FONT></TD>";
vCode = vCode + "</TR>";

return vCode;
}

Calendar.prototype.cal_data = function() {
var vDate = new Date();
vDate.setDate(1);
vDate.setMonth(this.gMonth);
vDate.setFullYear(this.gYear);

var vFirstDay=vDate.getDay();
var vDay=1;
var vLastDay=Calendar.get_daysofmonth(this.gMonth, this.gYear);
var vOnLastDay=0;
var vCode = "";
vCode = vCode + "<TR>";
for (i=0; i<vFirstDay; i++) {
vCode = vCode + "<TD WIDTH='14%'" + this.write_weekend_string(i) + "><FONT SIZE='2' FACE='" + fontface + "'> </FONT></TD>";
}

for (j=vFirstDay; j<7; j++) {
vCode = vCode + "<TD WIDTH='14%'" + this.write_weekend_string(j) + "><FONT SIZE='2' FACE='" + fontface + "'>" +
"<A HREF='#' " +
"onClick=\"javascript:opener.dt.value='" + this.format_data(vDay) + "';javascript:opener.dt.focus();window.close();\">" +
this.format_day(vDay) +
"</A>" +
"</FONT></TD>";
vDay=vDay + 1;
}
vCode = vCode + "</TR>";

for (k=2; k<7; k++) {
vCode = vCode + "<TR>";

for (j=0; j<7; j++) {
vCode = vCode + "<TD WIDTH='14%'" + this.write_weekend_string(j) + "><FONT SIZE='2' FACE='" + fontface + "'>" +
"<A HREF='#' " +
"onClick=\"javascript:opener.dt.value='" + this.format_data(vDay) + "';javascript:opener.dt.focus();window.close();\">" +
this.format_day(vDay) +
"</A>" +
"</FONT></TD>";
vDay=vDay + 1;

if (vDay > vLastDay) {
vOnLastDay = 1;
break;
}
}

if (j == 6)
vCode = vCode + "</TR>";
if (vOnLastDay == 1)
break;
}

for (m=1; m<(7-j); m++) {
if (this.gYearly)
vCode = vCode + "<TD WIDTH='14%'" + this.write_weekend_string(j+m) +
"><FONT SIZE='2' FACE='" + fontface + "' COLOR='gray'> </FONT></TD>";
else
vCode = vCode + "<TD WIDTH='14%'" + this.write_weekend_string(j+m) +
"><FONT SIZE='2' FACE='" + fontface + "' COLOR='gray'>" + m + "</FONT></TD>";
}

return vCode;
}

Calendar.prototype.format_day = function(vday) {
var vNowDay = gNow.getDate();
var vNowMonth = gNow.getMonth();
var vNowYear = gNow.getFullYear();

if (vday == vNowDay && this.gMonth == vNowMonth && this.gYear == vNowYear)
return ("<FONT COLOR=\"RED\"><B>" + vday + "</B></FONT>");
else
return (vday);
}

Calendar.prototype.write_weekend_string = function(vday) {
var i;

for (i=0; i<weekend.length; i++) {
if (vday == weekend[i])
return (" BGCOLOR=\"" + weekendColor + "\"");
}

return "";
}

Calendar.prototype.format_data = function(p_day) {
var vData;
var vMonth = 1 + this.gMonth;
vMonth = (vMonth.toString().length < 2) ? "0" + vMonth : vMonth;
var vMon = Calendar.get_month(this.gMonth).substr(0,3).toUpperCase();
var vFMon = Calendar.get_month(this.gMonth).toUpperCase();
var vY4 = new String(this.gYear);
var vY2 = new String(this.gYear.substr(2,2));
var vDD = (p_day.toString().length < 2) ? "0" + p_day : p_day;

switch (this.gFormat) {
case "MM\/DD\/YYYY" :
vData = vMonth + "\/" + vDD + "\/" + vY4;
break;
case "MM\/DD\/YY" :
vData = vMonth + "\/" + vDD + "\/" + vY2;
break;
case "MM-DD-YYYY" :
vData = vMonth + "-" + vDD + "-" + vY4;
break;
case "MM-DD-YY" :
vData = vMonth + "-" + vDD + "-" + vY2;
break;

case "DD\/MON\/YYYY" :
vData = vDD + "\/" + vMon + "\/" + vY4;
break;
case "DD\/MON\/YY" :
vData = vDD + "\/" + vMon + "\/" + vY2;
break;
case "DD-MON-YYYY" :
vData = vDD + "-" + vMon + "-" + vY4;
break;
case "DD-MON-YY" :
vData = vDD + "-" + vMon + "-" + vY2;
break;

case "DD\/MONTH\/YYYY" :
vData = vDD + "\/" + vFMon + "\/" + vY4;
break;
case "DD\/MONTH\/YY" :
vData = vDD + "\/" + vFMon + "\/" + vY2;
break;
case "DD-MONTH-YYYY" :
vData = vDD + "-" + vFMon + "-" + vY4;
break;
case "DD-MONTH-YY" :
vData = vDD + "-" + vFMon + "-" + vY2;
break;

case "DD\/MM\/YYYY" :
vData = vDD + "\/" + vMonth + "\/" + vY4;
break;
case "DD\/MM\/YY" :
vData = vDD + "\/" + vMonth + "\/" + vY2;
break;
case "DD-MM-YYYY" :
vData = vDD + "-" + vMonth + "-" + vY4;
break;
case "DD-MM-YY" :
vData = vDD + "-" + vMonth + "-" + vY2;
break;

default :
vData = vMonth + "\/" + vDD + "\/" + vY4;
}

return vData;
}

function Build(p_item, p_month, p_year, p_format) {
var p_WinCal = ggWinCal;
gCal = new Calendar(p_item, p_WinCal, p_month, p_year, p_format);
gCal.gBGColor="#F3F6EC";
gCal.gLinkColor="black";
gCal.gTextColor="black";
gCal.gHeaderColor="#000033";

if (gCal.gYearly) gCal.showY();
else gCal.show();
}


function ampmcheckCommon(ampmtimemins,ampmvalue)
{
var ampmvar1=parseInt(ampmtimemins.substring(0,2),10)
var ampmvar2=parseInt(ampmtimemins.substring(3,5),10)
if (ampmvar1 < '10')
{
ampmvar1='0'+ampmvar1
}
if (ampmvar2 < '10')
{
ampmvar2='0'+ampmvar2
}

var ampmvalue1=ampmvalue

if (ampmvalue1 == 'AM')
{
if (ampmvar1 > '11' || ampmvar1 < '00' )
{
alert('AM range is between 00:00 to 11:59')
return false;
}
}
else
{

if (ampmvar1 > '12' || ampmvar1 < '00')
{
alert('PM range is between 01:00 to 12:59')
return false;
}
}
if (ampmvar2 > '59')
{
alert('Minutes range is between 00 to 59 ')
return false;
}
return true
}

function checkMDY(theField,sname,emptyOK){
if (checkMDY.arguments.length == 1) emptyOK = defaultEmptyOK;
if (isEmpty(theField.value)) return emptyOK;
else{
var dateString = stripCharsInBag(theField.value,"-/ ");
var mm = dateString.substring(0,2);
var dd = dateString.substring(2,4);
var yyyy = dateString.substring(4,theField.value.length);
if (!isMonth(mm)) return warnInvalid(theField,sname + " contains an invalid Date. Format must be MM/DD/YYYY.");
if (!isDay(dd)) return warnInvalid(theField,sname + " contains an invalid Date. Format must be MM/DD/YYYY.");
if (!isYear(yyyy)) return warnInvalid(theField,sname + " contains an invalid Date. Format must be MM/DD/YYYY.");
else if (yyyy.length == 2) {
if(parseInt(yyyy, 10) > 20)
yyyy = (parseInt(yyyy, 10)+1900);
else
yyyy = (parseInt(yyyy, 10)+2000);
}

if (isDate(yyyy.toString(),mm.toString(),dd.toString())){
theField.value = mm+"/"+dd+"/"+yyyy;
return true;
}
else{
warnInvalid(theField,sname + " contains an invalid date");
return false;
}
}
}
function checkTime(theField,sname,emptyOK){
if (checkTime.arguments.length == 1) emptyOK = defaultEmptyOK;
if (isEmpty(theField.value)) return emptyOK;
var timeString = stripCharsInBag(theField.value,"-/:;.");

if(!isInteger(timeString)){
warnInvalid(theField,sname+ " contains invalid time.Format must be hh:mm");
return false;
}
if(timeString.length>4 || timeString.length<3){
warnInvalid(theField,sname + " contains invalid time.Format must be hh:mm");
return false;
}
if(timeString.length==4){
var hh = timeString.substring(0,2);
var min = timeString.substring(2,4);
if(parseInt(hh)>23 || parseInt(min)>59){
warnInvalid(theField,sname + " contains invalid time.Format must be hh:mm");
return false;
}
theField.value=hh+":"+min;
return true;
}
if(timeString.length==3){
var hh=timeString.substring(0,1);
var min=timeString.substring(1,3);
hh="0"+hh;
if(parseInt(hh)>23 || parseInt(min)>59){
warnInvalid(theField,sname + " contains invalid time.Format must be hh:mm");
return false;
}
theField.value=hh+":"+min;
return true;
}

}
function show_calendar() {
p_item = arguments[0];
if (arguments[1] == null)
p_month = new String(gNow.getMonth());
else
p_month = arguments[1];
if (arguments[2] == "" || arguments[2] == null)
p_year = new String(gNow.getFullYear().toString());
else
p_year = arguments[2];
if (arguments[3] == null)
p_format = "MM/DD/YYYY";
else
p_format = arguments[3];

vWinCal = window.open("", "Calendar","width=250,height=195,status=no,resizable=no,top=200,left=200");
vWinCal.focus();
vWinCal.opener = self;
ggWinCal = vWinCal;

Build(p_item, p_month, p_year, p_format);
}

function show_yearly_calendar(p_item, p_year, p_format) {
if (p_year == null || p_year == "")
p_year = new String(gNow.getFullYear().toString());
if (p_format == null || p_format == "")
p_format = "MM/DD/YYYY";

var vWinCal = window.open("", "Calendar", "scrollbars=yes");
vWinCal.opener = self;
ggWinCal = vWinCal;

Build(p_item, null, p_year, p_format);
}

function prompt (s){
window.status = s;
}
function isNegativeInteger (s){
var secondArg = defaultEmptyOK;
if (isNegativeInteger.arguments.length > 1)
secondArg = isNegativeInteger.arguments[1];
return (isSignedInteger(s, secondArg)
&& ( (isEmpty(s) && secondArg) || (parseInt (s, 10) < 0) ) );
}

function isNonpositiveInteger (s){
var secondArg = defaultEmptyOK;
if (isNonpositiveInteger.arguments.length > 1)
secondArg = isNonpositiveInteger.arguments[1];
return (isSignedInteger(s, secondArg)
&& ( (isEmpty(s) && secondArg) || (parseInt (s, 10) <= 0) ) );
}
function isFloat (s){
var i;
var seenDecimalPoint = false;
var decimalPointDelimiter = ".";
if (isEmpty(s))
if (isFloat.arguments.length == 1) return defaultEmptyOK;
else return (isFloat.arguments[1] == true);
if (s == decimalPointDelimiter) return false;
for (i = 0; i < s.length; i++)
{
var c = s.charAt(i);
if ((c == decimalPointDelimiter) && !seenDecimalPoint) seenDecimalPoint = true;
else if (!isDigit(c)) return false;
}
return true;
}
function checkRealNumbers(theValue,theField)
{
alert(isFloat(theValue));
alert(isDigit(theValue));


}
