/*
 * Original Code - Bazillyo's Spiffy DHTML Popup Calendar v. 1.0 @ 2000 S. Ousta
 *   - freeware with this comment
 *   - Thanks to Chris for the domlay() function
 *   - this requires calendarcode.js, calendar.css, and calendarTest.htm
 *   - works in IE4.x, IE5.x, NS4.75 possibly 4.x, NS6 (with slight cosmetic issues)
 *   - Netscape does display some controls overtop of the layer so layout is important
 *
 * Vertebrae rewrite B. Ullman/P. Smith/K. Meaney
 *   Major changes:
 *   - Removal of month & year drop down menus, and dependancies on those items (which Netscape didn't handle well)
 *   - Addition of month and year VCR-type controls.
 *   - restyle layout to build smaller, neater calendar menu.
 *   - Allow user to select non-current month values (the grayout dates)
 *   - Provide method for menu to default to the date shown in the input box.
 *   - Test on the Macs, and make changes to accomodate them.
 */
document.write("<style type='text/css'>");
document.write(".head { font-family: arial; font-size: 12px; font-weight: normal; }"); 
document.write("#popupcalendar { width: 185px; height:130px; left: 0px; top: 0px; background-color: white; position:relative; visibility: hidden; }"); 
document.write(".text { font-family: arial; font-size: 12px; font-weight: normal; padding: 2px; }");
document.write(".C-TextBox		{ color: Black; font-family: Verdana,  Arial, sans-serif; font-size: 7.1pt; font-weight: normal; }");
document.write(".C-Table		{ border-width: 0px;border-top-color: #99CCCC; border-left-color: #99CCCC; border-right-color: #99CCCC; border-bottom-color:  #99CCCC; background-color:#000000; }");
document.write("span.C-dL			{ font-family: Verdana, Arial, sans-serif; font-size: 7.1pt; font-weight: normal; text-decoration: none; color: black; background-color: transparent; }");
document.write("span.C-dL:active	{ font-family: Verdana, Arial, sans-serif; font-size: 7.1pt; font-weight: normal; text-decoration: none; background-color: transparent; color: black; }");
document.write("span.C-tdL 	  { font-family: Verdana, Arial, sans-serif; font-size: 7.1pt; font-weight: normal; text-decoration: none; color: black; background-color: transparent; }");
document.write("span.C-tdL:active{ font-family: Verdana, Arial, sans-serif; font-size: 7.1pt; font-weight: bold; text-decoration: none; background-color: transparent; color: black}");
document.write("span.C-tdLDefault 	  { font-family: Verdana, Arial, sans-serif; font-size: 7.1pt; font-weight: normal; text-decoration: none; color: #030303; background-color: transparent; }");
document.write("span.C-tdLDefault:active{ font-family: Verdana, Arial, sans-serif; font-size: 7.1pt; font-weight: bold; text-decoration: none; background-color: transparent; color: black}");
document.write(".C-GreyDate { font-family: Verdana,  Arial, sans-serif; font-size: 7.1pt; font-weight: normal; text-decoration: none; background-color: #CCCCCC; color: #999999; }");
document.write(".C-HighLight { font-family: Verdana,  Arial, sans-serif; font-size: 7.1pt; font-weight: bold; text-decoration: none; background-color:#FFFF80; color: #999999; }");
document.write(".C-HighLightText { font-family: Verdana,  Arial, sans-serif; font-size: 7.1pt; font-weight: bold; text-decoration: none;background-color:#FFFF80; color: #000000; }");
document.write(".C-GreyInvalidDate { font-family: Verdana, Arial, sans-serif; font-size: 7.1pt; font-weight: normal; text-decoration: line-through; background-color: #FFFFCC; color: black }");
document.write(".C-dC 	{ font-family: Verdana, Arial, sans-serif; font-size: 7.1pt; font-weight: normal; background-color: #FFFFFF; }");
document.write(".C-mod 	{ font-family: Verdana, Arial, sans-serif; font-size: 7.1pt; font-weight: normal; background-color: #FFFFFF; text-align:left;}");
document.write(".C-hC 	{ font-family: Verdana, Arial, sans-serif; font-size: 7.1pt; font-weight: bold; color: #FFFFFF; text-decoration: none; background-color: #000000; }");
document.write(".C-ActionCell { font-family: Verdana, Arial, sans-serif; font-size: 7.1pt; font-weight: bold; color: #FFFFFF; text-decoration: none; background-color: #336699; }");
document.write(".C-TodayCell 	{ font-family: Verdana, Arial, sans-serif; font-size: 9.1pt; font-weight: bold; color: #FFFFFF; text-decoration: none; background-color: #5a5a5a; }");
document.write("</style>");


// initialize variables... 
document.write("<!-- This empty doc.write somehow helps Netscape initialize vars better -->");
var ppcIE=((navigator.appName == "Microsoft Internet Explorer") || ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion)==5)));
var ppcNN6=((navigator.appName == "Netscape") && (parseInt(navigator.appVersion)==5));
var ppcNN=((navigator.appName == "Netscape")&&(document.layers));
is_mac= (navigator.userAgent.toLowerCase().indexOf("mac")!=-1);
var is_mac4x=((navigator.userAgent.toLowerCase().indexOf("mac")!=-1)&&(navigator.appName == "Microsoft Internet Explorer")&&(navigator.appVersion.indexOf("5.0")==-1));

agt=navigator.userAgent.toLowerCase();
is_opera6 = ( (agt.indexOf("opera") != -1) && 
				  (parseInt(navigator.appVersion.substring(0,1)) < 7 ) );

is_NsFour = ( (agt.indexOf("msie") == -1) && (agt.indexOf("opera") == -1) &&
			  (agt.indexOf("mozilla/4.") != -1) );

var todayDate  = new Date, curDate = new Date; 
var minDate = new Date, maxDate = new Date;
var IsCalendarVisible=false, valid=true;
var inputCount=0, inputNum=0;
var ppcX = 4,  ppcY = 4;
var curImg, curDateBox;
var defaultD, gstrDefaultDate
var dteBoxName1, dteBoxName2
var gwhatMonth, gwhatYear
var setMin, setMax
var IsUsingMinMax;
var calfrmName;
var gblnClearDate
var grunFunc
var names     = new Array('JAN','FEB','MAR','APR','MAY','JUN','JUL','AUG','SEP','OCT','NOV','DEC');
var longnames = new Array('January','February','March','April','May','June','July','August','September','October','November','December');
var days      = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
var dow       = new Array('S','M','T','W','T','F','S');
var dateChar="-";
var imagesDir = appendImagePath("other/16x16/");
//is_mac4x=true; //uncomment for mac testing
var months = new Array(); months = names //from date.js
var now = new Date(); //from date.js
document.write("<!-- This empty doc.write somehow helps Netscape initialize vars better -->");
var calenderX = 0;
var calenderY = 0;
// integrated functions from legacy date.js
function y2k(number) { return (number < 1900) ? number + 1900 : number; }

function getFirstofYearOffset(){
	var firstofyear = (new Date((new Date().getYear()),0,1)).getTime();
	var todaysDate = (new Date((new Date().getYear()),((new Date().getMonth())),(new Date().getDate()))).getTime();
	returnedValue = Math.floor(((todaysDate - firstofyear)/(-24 * 60 * 60 * 1000)));
	return (returnedValue);
}

function setDate (dayOffset){
	var selectedDate = new Date(((new Date()).getTime() + ((parseInt(dayOffset) * 24 * 60 * 60 * 1000))));
	return ((selectedDate.getDate() < 10) ? '0' + selectedDate.getDate() : selectedDate.getDate()) + "-" + months[selectedDate.getMonth()] + "-" + y2k(selectedDate.getYear());
}//end integration date.js

function getOffsetLeft (el) {
    var ol = el.offsetLeft;
    while ((el = el.offsetParent) != null)
        ol += el.offsetLeft;
    return ol;
}

function getOffsetTop (el) {
    var ot = el.offsetTop;
    while((el = el.offsetParent) != null)
        ot += el.offsetTop;
    return ot;
}


function calClick() { window.focus(); }

function domlay(id,trigger,lax,lay,content) {
    // Layer visible
    if (trigger==1){
        if (document.layers) document.layers[''+id+''].visibility = "show"
        else if (document.all) document.all[''+id+''].style.visibility = "visible"
        else if (document.getElementById) document.getElementById(''+id+'').style.visibility = "visible"                
    }
    // Layer hidden
    else if (trigger==0){
        if (document.layers) document.layers[''+id+''].visibility = "hide"
        else if (document.all) document.all[''+id+''].style.visibility = "hidden"
        else if (document.getElementById) document.getElementById(''+id+'').style.visibility = "hidden"             
    }
    // Set horizontal position  
		/// relative change no move.......sanjay
    if (lax){
        //if (document.layers){document.layers[''+id+''].left = lax}
        //else if (document.all){document.all[''+id+''].style.left=lax}
        //else if (document.getElementById){document.getElementById(''+id+'').style.left=lax+"px"}
    }
    // Set vertical position
    if (lay){
        //if (document.layers){document.layers[''+id+''].top = lay}
        //else if (document.all){document.all[''+id+''].style.top=lay}
        //else if (document.getElementById){document.getElementById(''+id+'').style.top=lay+"px"}
    }

    // change content
    if (content){
	    if (document.layers){
	        var sprite=document.layers[''+id+''];
	       	sprite.document.open();
	       	sprite.document.write(content);
	       	sprite.document.close();
	    }
	    else if (document.all) document.all[''+id+''].innerHTML = content;  
	    else if (document.getElementById)
		{
			if ( is_opera6 )
			{
				var container = document.getElementById(''+id+'');
	        	container.document.write(content);
			}
			else
			{
	        	rng = document.createRange();
	        	el = document.getElementById(''+id+'');
	        	rng.setStartBefore(el);
	        	htmlFrag = rng.createContextualFragment(content)
	        	while(el.hasChildNodes()) el.removeChild(el.lastChild);
	        	el.appendChild(htmlFrag);
			}
		}	
	}	
}

function hideCalendar(){
    //domlay('popupcalendar',0,ppcX,ppcY);   
    //IsCalendarVisible = false;
		IsCalendarVisible = true;
}


function Calendar(whatMonth,whatYear) {
    var startMonth, startYear;
    var datecolwidth, output = '';
    
	gwhatMonth=whatMonth; gwhatYear=whatYear
	startMonth=whatMonth; startYear=whatYear;
    
	curDate.setMonth(whatMonth);
    curDate.setFullYear(whatYear);
    curDate.setDate(todayDate.getDate());
    
	if (ppcNN6) {
        output += '<form name="Cal"><table width="170" border="0" cellspacing="0" cellpadding="0" class="C-Table"><tr><td class="C-Table"><table width="180" border="0" cellspacing="1" cellpadding="1" class="C-Table">';
	} else {
	    if ((is_mac)&&(ppcIE)) output += '<table width="170" border="0" cellspacing="1" cellpadding="1" class="C-Table"><form name="Cal">';
		else output += '<table width="170" border="0" cellspacing="0" cellpadding="0" class="C-Table"><tr><td class="C-Table"><table width="170" border="0" cellspacing="1" cellpadding="1" class="C-Table"><form name="Cal">';
	}output += '<tr><td class="C-ActionCell" colspan=7><table width="100%" cellpadding=1 cellspacing=0 border=0 class="C-Table"><tr><td class="C-ActionCell">'
	
	if (gblnClearDate=="true") output += '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';
	else output += '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'
		
	var tempYear = (parseInt(whatMonth - 1) == -1) ? parseInt(whatYear - 1) : whatYear;
	output += '<a href="#" onClick="changeDate(' + whatMonth + ', ' + parseInt(whatYear - 1) + ');return false;"><img name="calbtn1" src="' + imagesDir + 'left8.gif" border="0" width="11" height="11" align="baseline" alt="' + parseInt(whatYear - 1) + '" title="' + parseInt(whatYear - 1) + '"></a>&nbsp;&nbsp;';
	output += '<a href="#" onClick="changeDate(' + parseInt(whatMonth - 1) + ', ' + tempYear + ');return false;"><img name="calbtn1" src="' + imagesDir + 'left4.gif" border="0" alt="' + longnames[(whatMonth-1 < 0) ? 11 : whatMonth-1] + '" title="' + longnames[(whatMonth-1 < 0) ? 11 : whatMonth-1] + '" width="6" height="11" align="baseline"></a></td><td class="C-ActionCell" align="center">';
	output += '<input type="hidden" name="hidMonth" value="' + whatMonth + '">' + names[whatMonth] + ', ';
	output += '<input type="hidden" name="hidYear" value="' + whatYear + '">' + whatYear + '</td><td class="C-ActionCell" align="right">';
	var tempYear = (parseInt(whatMonth + 1) == 12) ? parseInt(whatYear + 1) : whatYear;
	output += '<a href="#" onClick="changeDate(' + parseInt(whatMonth + 1) + ', ' + tempYear + ');return false;"><img name="calbtn1" src="' + imagesDir + 'right4.gif" border="0" width="6" height="11" alt="' + longnames[(whatMonth+1 > 11) ? 0 : whatMonth+1] + '" title="' + longnames[(whatMonth+1 > 11) ? 0 : whatMonth+1] + '" align="baseline"></a>&nbsp;&nbsp;';
	output += '<a href="#" onClick="changeDate(' + whatMonth + ',' + parseInt(whatYear + 1) + ');return false;"><img name="calbtn1" src="' + imagesDir + 'right8.gif" border="0" width="11" height="11" alt="' + parseInt(whatYear + 1) + '" title="' + parseInt(whatYear + 1) + '" align="baseline"></a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';
	//output += '<a href="javascript:hideCalendar();"><img name="calbtn2" src="' + imagesDir + 'btn_close_small.gif" border="0" width="12" height="10" alt="close calendar"></a></td>';
	output += '</td>';
	output += '</tr></table></td></tr><tr align="center">';
    firstDay = new Date(whatYear,whatMonth,1);
    startDay = firstDay.getDay();

    if (((whatYear % 4 == 0) && (whatYear % 100 != 0)) || (whatYear % 400 == 0)) days[1] = 29;
    else days[1] = 28;

    for (i=0; i<7; i++) {
        var datecolwidth = (i==0 || i==6) ? "15%" : "14%" ;
        output += '<td class="C-hC" width="' + datecolwidth + '" valign="middle">'+ dow[i] +'<\/td>\n';
    }output += '<\/tr><tr align="center">\n';

    var lastMonth = whatMonth - 1; var lastYear = whatYear; var column = 0;
   	if (lastMonth == -1) { lastMonth = 11; lastYear=lastYear-1;}

    for (i=0; i<startDay; i++, column++) 
        output += getDayLink((days[lastMonth]-startDay+i+1),true,lastMonth,lastYear);
    	
	this_month = days[whatMonth];
    for (i=1; i<=this_month; i++) {
	    output += getDayLink(i,false,whatMonth,whatYear);
        if (column == 6) {
            output += '<\/tr><tr align="center">\n'; column = -1;
        }column++
    }
    
    var nextMonth = whatMonth+1; var nextYear = whatYear;
    if (nextMonth==12) { nextMonth=0; nextYear=nextYear+1; }
    
    if (column > 0) for (i=1; column<7; i++, column++) output +=  getDayLink(i,true,nextMonth,nextYear);
    else output = output.substr(0,output.length-20); 
    
	output += '<\/td><\/tr>';
	output += '<tr><td colspan="7" class="C-dC" align=center>Today is ';
	output += '<font color="red"><strong>' + longnames[todayDate.getMonth()] +' ' + todayDate.getDate() + ', ' + todayDate.getFullYear() + '</strong></td></tr>';

	output += '<tr><td colspan="7" style="text-align:center;background:#fff;" valign="middle"><a style="color:#3354AA;text-decoration:underline;font-weight:bold;font-size:8pt;" href="javaScript:showList(\'rnews\')">View Recent News</a>';
	output += '</td></tr>';
	
    if (ppcNN6) output += '</td></tr></table><\/table><\/form>';
    else if ((is_mac)&&(ppcIE)) output += '<\/form></td></tr></table><\/table>';
	else output += '<\/form></td></tr></table><\/table>';
    curDate.setDate(1);
    curDate.setMonth(startMonth); curDate.setFullYear(startYear);
	eval('document.' + calfrmName + '.' + curDateBox + '.value=\'' + '01' + dateChar +names[(curDate.getMonth())] + dateChar + curDate.getFullYear()+'\'');
	return output;
}

function isDayValid(validDay, validMonth, validYear){
    curDate.setDate(validDay);
    curDate.setMonth(validMonth);
    curDate.setFullYear(validYear);
    
	if ((setMin==1)||(setMax==1)){
		if ((curDate>=minDate) && (curDate<=maxDate)) {
	    	return true;
	 	}else{
			if ((setMin==1)&&(setMax!=1)){
				if (curDate>=minDate) return true;
			    else return false;
			}
			if ((setMax==1)&&(setMin!=1)){
				if (curDate<=maxDate) return true;
			    else return false;			    
}	}	}	}

function isDayToday(isDay) {
    var objCompare;	var objCompare2
	
	if (gstrDefaultDate) { objCompare=today_date; objCompare2=today_date; }
	else{ objCompare=curDate; objCompare2=todayDate; }
		
	if (((curDate.getFullYear() == objCompare2.getFullYear()) && (curDate.getMonth() == objCompare2.getMonth()) && (isDay == objCompare2.getDate()))||(((curDate.getFullYear() == todayDate.getFullYear()) && (curDate.getMonth() == todayDate.getMonth()) && (isDay == todayDate.getDate())))) return true;
    else return false;
}

	
function padout(number) { return (number < 10) ? '0' + number : number; }

function clearDay() {
    eval('document.' + calfrmName + '.' + curDateBox + '.value = \'\'');
    hideCalendar();
}

function cDay(whatDay,greyFlag) { // chooseDay for input
    var monthModify=0, yearModify=0;
	if (greyFlag){
		if (whatDay>15){
			monthModify+=-1
			if (gwhatMonth==0){ monthModify+=12; yearModify+=-1; }
		}else{
			monthModify+=1
			if (gwhatMonth==11){ monthModify+=-12; yearModify+=1; }
	}	}
	if (whatDay<=9) whatDay="0"+whatDay
	
	eval('document.' + calfrmName + '.' + curDateBox + '.value = "'+ whatDay+ dateChar + names[curDate.getMonth()+monthModify] + dateChar + (curDate.getFullYear()+yearModify) + '"');
    eval(grunFunc);
    hideCalendar();
}
	
function changeDate(monthID, YearID){
	curDate.setMonth(monthID); curDate.setFullYear(YearID);
	if ( !is_opera6 )
	{
		domlay('popupcalendar',1,ppcX,ppcY,Calendar(curDate.getMonth(),curDate.getFullYear()));
	}
	else
	{
		//var strCurDate=curDate.getDate()+dateChar+names[curDate.getMonth()]+dateChar+curDate.getFullYear();
		//strCurDate=formatDate(strCurDate,0,frmName,dteBox);
		var strCurDate=(curDate.getMonth()+1)+"/"+curDate.getDate()+"/"+curDate.getFullYear();
		refreshPage(strCurDate);
	}
	if(document.listform)
	{
		document.getElementById("listtype").value="rrange";
		document.listform.submit();
	}
}

function makeArray0() {
    for (i = 0; i<makeArray0.arguments.length; i++) 
		this[i] = makeArray0.arguments[i];
}

function validateDate(day, month, year){
    if (!day || !month || !year)return false;
   	if (isNaN(day) || (day<1 || day>31))return false;
	if (isNaN(month) || (month<1 || month>12))return false;
	
	if ((year.length==3)||(isNaN(year)))return false;
	if(parseInt(year) < 70) year = parseInt(year)+2000;
	if ((parseFloat(year)>=3000 || parseFloat(year)<=1900)||((""+year).length>=5))return false;
	
	month=parseFloat(month)-1;
	if (month==1){
		if (year == Math.round(year / 4) * 4){
	   		if (day > 29)return false;
        }else{
     		if (day > 28)return false;
        }
	}else if (day>days[month]){ return false; }
}		

/*formats date for date.parse for 
all but mac ie4x. For mac ie4x, checks valid date and populates the input value for mac ie4x */
function formatDate(dateVal,flag,frmName,dteBox){
	if (!dateVal)dateVal="///"
	if (dateVal.indexOf("--")>-1) return false
	
	var pattern=eval("/"+dateChar+"/g");
	dateVal=(dateVal.replace(pattern,"/")).toUpperCase();
	var tempDate;i=0;
	
	if (flag==1 || flag==3){//mac ie4x
		var returnVal=true;
		if (dateVal.indexOf('/')==-1)return false;
	}
	
	var dateArray=dateVal.split('/');
	defaultD=parseFloat(dateArray[0]);
	if (flag!=2 || flag!=3)dateArray[1]=dateArray[1].toUpperCase();
	
	if (dateArray[1] < "0" || dateArray[1] > "9"){
		while (i<names.length && names[i]!=dateArray[1])i++;
		dateArray[1]=i+1;
	}else if((flag==1 || flag==3)&&(dateArray[1]<1 && dateArray[1]>12)){//mac ie4x
		return false;
	}
	if (flag!=1 && flag!=3){
		dateArray[2]=parseFloat(dateArray[2])
		if(dateArray[2] < 70) dateArray[2] += 2000;
	}
	
	tempDate=dateArray[0];
	dateArray[0]=dateArray[1];dateArray[1]=tempDate;
	
	if (!flag==1 && dateArray[1].length==1)dateArray[1]="0"+dateArray[1];
	
	if (flag!=1 && flag!=3){//not mac ie4x
		if (dateArray[1].length==1)dateArray[1]="0"+dateArray[1];
		if (flag!=2)eval("document."+frmName+"."+dteBox+".value='"+dateArray[1]+dateChar+names[dateArray[0]-1]+dateChar+dateArray[2]+"'");
		return dateArray.join("/");
	}else{//mac ie4x
		if (dateArray[1].substring(1,2)=="")dateArray[1]="0"+dateArray[1]
		if (validateDate(dateArray[1],dateArray[0],dateArray[2])==false){
			return false;
		}else{
			if (flag!=3)eval("document."+frmName+"."+dteBox+".value='"+dateArray[1]+dateChar+names[dateArray[0]-1]+dateChar+dateArray[2]+"'");
			return true;
}	}	}

/*validates dates for all browsers- called from formatDate() Also handles y2k */

/*writes proper page elements and their actions based on browser platform*/
function checkPlatform(frmName,dteBox,btnName,strMin,strMax,blnClearDate,runFunc, overridePopup){
	//if mac ie4x 
	if (is_mac4x) {
		document.write('<span class="PUT A CLASS HERE!!!">(DD-MMM-YYYY)</span>');
 	}else if(!is_mac4x) 
	{
		var strVAlign = 'align="absmiddle" '; 
		showCalendar(frmName,dteBox,btnName,strMin,strMax,blnClearDate,runFunc);
	}
}

function openCalendarPopup( boundaryBoxValRef, valBox, range )
{
	var elemVal = '';
	if ( !((boundaryBoxValRef == null) || (boundaryBoxValRef.length == 0) ))
	{
		if ( boundaryBoxValRef.toLowerCase().indexOf('document') != -1 )
			elemVal = window.eval(boundaryBoxValRef);
		else
			elemVal = boundaryBoxValRef;
	}

	openCalendar( elemVal, valBox, range );
}

/*blurs for ie*/
function checkBlur(frmObj){	if (!is_mac4x) frmObj.blur(); }

/* processes results from checkFields, and returns true on valid entry*/
function checkInvalid(frmName){
	if (valid){	return true; }
	else{
		alert('Please enter a valid date in the format of DD-MM(MM)-YY(YY)');			
		eval("document."+frmName+".elements["+inputNum+"].focus();");
		return false;
}	}

function getDayLink(linkDay,isGreyDate,linkMonth,linkYear) {
    var templink; valid_day = isDayToday(linkDay);
    var posted = false; 
    if(document.getElementById("news_dates") != null)
    {
    	if(document.getElementById("news_dates").value.indexOf("-"+linkDay+":"+(linkMonth+1)+":"+linkYear) != -1)
    	{
    		posted=true;
    	}
    }
    if (!(IsUsingMinMax)) {
		if (isGreyDate){
			templink='<td class="C-GreyDate">' + '<span class="C-dL" onmouseover="self.status=\' \';return true" href="javascript:cDay(' + linkDay + ',1);">' + linkDay + '<\/span>' +'<\/td>\n';
		}else{ 
			var tdclass="C-dC";
			var textClass="C-dL";
			if(posted)
			{
				tdclass="C-HighLight";
				textClass="C-HighLightText";
			}
			if (valid_day){
				if ((today_date.getDay()==curDate.getDay())&&(gstrDefaultDate)) templink='<td class="'+tdclass+'">' + '<span class="'+textClass+'" onmouseover="self.status=\' \';return true" href="javascript:cDay(' + linkDay + ',0);">' + linkDay + '<\/a>' +'<\/td>\n';
				else templink='<td class="'+tdclass+'">' + '<span class="'+textClass+'" onmouseover="self.status=\' \';return true" href="javascript:cDay(' + linkDay + ',0);">' + linkDay + '<\/span>' +'<\/td>\n';
           	}else{
				templink='<td class="'+tdclass+'">' + '<span class="'+textClass+'" onmouseover="self.status=\' \';return true" href="javascript:cDay(' + linkDay + ',0);">' + linkDay + '<\/span>' +'<\/td>\n';
		}	}
    } else {
        if (isDayValid(linkDay,linkMonth,linkYear)) {
             if (isGreyDate){
                templink='<td class="C-GreyDate">' + '<span class="C-dL" onmouseover="self.status=\' \';return true" href="javascript:cDay(' + linkDay + ',1);">' + linkDay + '<\/span>' +'<\/td>\n';
            } else {
            	if (isDayToday(linkDay)) {
					if ((today_date.getDay()==curDate.getDay())&&(gstrDefaultDate)) templink='<td class="C-dC">' + '<span class="C-tdLDefault" onmouseover="self.status=\' \';return true" href="javascript:cDay(' + linkDay + ',0);">' + linkDay + '<\/span>' +'<\/td>\n';
					else templink='<td class="C-dC">' + '<span class="C-tdL" onmouseover="self.status=\' \';return true" href="javascript:cDay(' + linkDay + ',0);">' + linkDay + '<\/span>' +'<\/td>\n';
                } else {
                    templink='<td class="C-dC">' + '<span class="C-dL" onmouseover="self.status=\' \';return true" href="javascript:cDay(' + linkDay + ',0);">' + linkDay + '<\/a>' +'<\/td>\n';
            }   }
        } else { templink='<td class="C-GreyInvalidDate">'+ linkDay + '<\/td>'; }
    }return templink;
}

function showCalendarDate(strDefaultDate, frmName, dteBox,btnImg, strMinDate, strMaxDate, blnClearDate,runFunc) {


	grunFunc=runFunc

	//strDefaultDate=formatDate(strDefaultDate,0,frmName,dteBox);

	today_date = new Date(strDefaultDate);
	
	if (strMinDate.indexOf("document")>-1){
		dteBoxName1=strMinDate.match(/(.*\.)(.*\.)(.*\.)/)
		if (!formatDate(eval(strMinDate),3,frmName,(RegExp.$3).substring(0,(RegExp.$3).length-1)))strMinDate=strMaxDate="///";
		strMinDate=eval(strMinDate);
	}
	if (strMaxDate.indexOf("document")>-1){
		dteBoxName2=strMaxDate.match(/(.*\.)(.*\.)(.*\.)/)
		if (!formatDate(eval(strMaxDate),3,frmName,(RegExp.$3).substring(0,(RegExp.$3).length-1)))strMinDate=strMaxDate="///";
		strMaxDate=eval(strMaxDate);
	}  
	
	if (!is_mac4x){
		strMinDate=formatDate(strMinDate,2,'','')
		strMaxDate=formatDate(strMaxDate,2,'','')
	}
	gstrDefaultDate=strDefaultDate
	start_month=today_date.getMonth()
	start_year=today_date.getFullYear()
	gblnClearDate=blnClearDate;
	
	var MnDtArray=strMinDate.split("/"); var MxDtArray=strMaxDate.split("/");
	
	var MnDt="",MnMo="",MnYr="",MxDt="",MxMo="",MxYr="";
	if (MnDtArray.length>=3) MnDt=MnDtArray[1];MnMo=MnDtArray[0];MnYr=MnDtArray[2];
	if (MxDtArray.length>=3) MxDt=MxDtArray[1];MxMo=MxDtArray[0];MxYr=MxDtArray[2];
	
	calfrmName = frmName;
    if (IsCalendarVisible) {
        hideCalendar();
    } else {
       	if (MnDt=="") setMin=0;
		else if (MxDt=="") setMax=0;
			   	
		if (((MnDt!="") && (MnMo!="") && (MnYr!="")) || ((MxDt!="") && (MxMo!="") && (MxYr!=""))) {
            IsUsingMinMax = true;
           	if ((MnDt!="") && (MnMo!="") && (MnYr!="")){
				setMin=1;
        	  	minDate.setFullYear(MnYr);
        	  	minDate.setMonth(MnMo-1);
				minDate.setDate(MnDt);
          	}
			if ((MxDt!="") && (MxMo!="") && (MxYr!="")){
				setMax=1;
            	maxDate.setFullYear(MxYr);
           		maxDate.setMonth(MxMo-1);
				maxDate.setDate(MxDt);
			}
        } else { IsUsingMinMax = false; }
		
    	curImg = btnImg; curDateBox = dteBox;
     
		if ( ppcIE ) {
						if(calenderX==0){
							ppcX = getOffsetLeft(document.images[btnImg]);
						}else{
							ppcX = calenderX;
						}
						if(calenderY==0){
							ppcY = getOffsetTop(document.images[btnImg]) + document.images[btnImg].height;
						}else{
							ppcY = calenderY;
						}
							
        }
        else if (ppcNN){
            ppcX = document.images[btnImg].x; 
            ppcY = document.images[btnImg].y + document.images[btnImg].height;
        }
		var calContent = Calendar(start_month,start_year);
        domlay('popupcalendar',1,ppcX,ppcY, calContent);       
        IsCalendarVisible = true;
}	
}

function showCalendar(frmName, dteBox,btnImg, strMinDate, strMaxDate, blnClearDate,runFunc) 
{

	var strDefaultDate = "";
	if (formatDate(eval("document."+frmName+"."+dteBox+".value"),1,frmName,eval("document."+frmName+"."+dteBox+".name"))){
		strDefaultDate=formatDate(eval("document."+frmName+"."+dteBox+".value;"),0,frmName,dteBox);
	}else{
		today_date = new Date();
		strDefaultDate=today_date.getDate()+dateChar+names[today_date.getMonth()]+dateChar+today_date.getFullYear();
		eval("document."+frmName+"."+dteBox+".value='"+strDefaultDate+"'");
		strDefaultDate=(today_date.getMonth()+1)+"/"+today_date.getDate()+"/"+today_date.getFullYear();
	}

	
	showCalendarDate(strDefaultDate, frmName, dteBox,btnImg, strMinDate, strMaxDate, blnClearDate,runFunc);
}


