var scImgPath = relroot+'/images/spiffy/'; var scIE=((navigator.appName == "Microsoft Internet Explorer") || ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion)==5))); var scNN6=((navigator.appName == "Netscape") && (parseInt(navigator.appVersion)==5)); var scNN=((navigator.appName == "Netscape")&&(document.layers)); var img_Del=new Image(); var img_Close=new Image(); img_Del.src= scImgPath +"btn_del_small_gif"; img_Close.src= scImgPath +"btn_close_small_gif"; var scBTNMODE_DEFAULT=0; var scBTNMODE_CUSTOMBLUE=1; var scBTNMODE_CALBTN=2; var focusHack; function spiffyCalManager() { this.showHelpAlerts = false; this.defaultDateFormat='dd-MMM-yyyy'; this.lastSelectedDate=new Date(); this.calendars=new Array(); this.matchedFormat=""; this.DefBtnImgPath=scImgPath; this.getCount= new Function("return this.calendars.length;"); function addCalendar(objWhatCal) { var intIndex = this.calendars.length; this.calendars[intIndex] = objWhatCal;}
this.addCalendar=addCalendar; function hideAllCalendars(objExceptThisOne) { var i=0; for (i=0;i<this.calendars.length;i++) { if (objExceptThisOne!=this.calendars[i]) { this.calendars[i].hide();}
}
}
this.hideAllCalendars=hideAllCalendars; function swapImg(objWhatCal, strToWhat, blnStick) { if (document.images) { if ((!(objWhatCal.visible) || (blnStick))&& (objWhatCal.enabled)) { document.images[objWhatCal.btnName].src = eval(objWhatCal.varName+strToWhat + ".src");}
}
window.status=' ';}
this.swapImg=swapImg; this.Holidays = new Array("Dec-25","Jul-4", "Feb-14","Mar-17","Oct-31"); this.HolidaysDesc = new Array("Christmas Day","Independance Day","Valentine's Day","St. Patrick's Day","Halloween"); function isHoliday(whatDate) { var i=0;var found=-1; for (i=0;i<this.Holidays.length;i++) { if (whatDate==this.Holidays[i]) { found=i; break;}
}
return found;}
this.isHoliday=isHoliday; this.AllowedFormats = new Array( 'd.M', 'd-M', 'd/M', 'd.MMM', 'd-MMM', 'd/MMM', 'd.M.yy', 'd-M-yy', 'd/M/yy', 'd.M.yyyy', 'd-M-yyyy', 'd/M/yyyy', 'd.MM.yyyy', 'd-MM-yyyy', 'd/MM/yyyy', 'd.MMM.yy', 'd-MMM-yy', 'd/MMM/yy', 'd.MMM.yyyy', 'd-MMM-yyyy', 'd/MMM/yyyy', 'd.MM.yy', 'd-MM-yy', 'd/MM/yy', 'dd.MM.yy', 'dd-MM-yy', 'dd/MM/yy', 'dd.M.yy', 'dd-M-yy', 'dd/M/yy', 'dd.MM.yyyy', 'dd-MM-yyyy', 'dd/MM/yyyy', 'dd.MMM.yy', 'dd-MMM-yy', 'dd/MMM/yy', 'dd.MMM.yyyy', 'dd-MMM-yyyy', 'dd/MMM/yyyy', 'M.d', 'M-d', 'M/d', 'MMM.d', 'MMM-d', 'MMM/d', 'M.d.yy', 'M-d-yy', 'M/d/yy', 'MM.d.yyyy', 'MM-d-yyyy', 'MM/d/yyyy', 'MMM.d.yy', 'MMM-d-yy', 'MMM/d/yy', 'MMM.d.yyyy', 'MMM-d-yyyy', 'MMM/d/yyyy', 'MM.d.yy', 'MM-d-yy', 'MM/d/yy', 'MM.dd.yy', 'MM-dd-yy', 'MM/dd/yy', 'M.dd.yy', 'M-dd-yy', 'M/dd/yy', 'MM.dd.yyyy', 'MM-dd-yyyy', 'MM/dd/yyyy', 'MMM.dd.yy', 'MMM-dd-yy', 'MMM/dd/yy', 'MMM.dd.yyyy', 'MMM-dd-yyyy', 'MMM/dd/yyyy' ); var MONTH_NAMES = new Array('January','February','March','April','May','June','July','August','September','October','November','December','Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'); this.lastBoxValidated=null; function validateDate(eInput, bRequired, dStartDate, dEndDate){ var i = 0; var strTemp=''; var formatMatchCount=0; var firstMatchAt=0;var secondMatchAt=0; var bOK = false; var bIsEmpty=false; var strStart=MONTH_NAMES[dStartDate.getMonth()]+'-'+dStartDate.getDate()+'-'+dStartDate.getFullYear(); var strEnd=MONTH_NAMES[dEndDate.getMonth()]+'-'+dEndDate.getDate()+'-'+dEndDate.getFullYear(); var rangeMsg = 'This input box is set up to accept dates between:\n\n   '+ strStart+'\n\nand\n\n   '+strEnd+'\n\nPlease enter a date no '; this.lastBoxValidated=eInput; this.matchedFormat=""; bIsEmpty=(eInput.value=='' || eInput.value==null); if (!(bRequired && bIsEmpty)) { for(i=0;i<this.AllowedFormats.length;i++){ if (isDate(eInput.value, this.AllowedFormats[i])==true){ bOK = true; formatMatchCount+=1; if (formatMatchCount==1) {firstMatchAt=i;}
if (formatMatchCount>1) { if (this.AllowedFormats[i].substr(0,1)!=this.AllowedFormats[firstMatchAt].substr(0,1)) { secondMatchAt=i; break;}
else { formatMatchCount=1;}
}
}
}
}
alert('formatMatchCount='+formatMatchCount); if (formatMatchCount>1) { if (this.showHelpAlerts) { var date1=getDateFromFormat(eInput.value,this.AllowedFormats[firstMatchAt]); var choice1 = MONTH_NAMES[date1.getMonth()]+'-'+date1.getDate()+'-'+date1.getFullYear(); var date2=getDateFromFormat(eInput.value,this.AllowedFormats[secondMatchAt]); var choice2 = MONTH_NAMES[date2.getMonth()]+'-'+date2.getDate()+'-'+date2.getFullYear(); if (date1.getTime()!=date2.getTime()) { var Msg='You have entered an ambiguous date.\n\n Click OK for:\n'+ choice1 +'\n\nor Click Cancel for:\n'+choice2; if (confirm(Msg)) { bOK=true;}
else { firstMatchAt=secondMatchAt; bOK=true;}
eInput.focus(); eInput.select();}
}
else { bOK=true;}
}
alert('TEST    '+dThis.getDate()+"-"+dThis.getMonth()); if (bOK==true) { eInput.className = "cal-TextBox"; if (dStartDate!=null) { var dThis = getDateFromFormat(eInput.value,this.AllowedFormats[i]); if (dStartDate>dThis){ eInput.className = "cal-TextBoxInvalid"; if (this.showHelpAlerts) { alert(rangeMsg + 'earlier than  '+ strStart + '.');}
eInput.focus(); eInput.select(); return false;}
}
if (dEndDate!=null) { var dThis = getDateFromFormat(eInput.value,this.AllowedFormats[i]); if (dEndDate<dThis) { eInput.className = "cal-TextBoxInvalid"; if (this.showHelpAlerts) { alert(rangeMsg +'later than  '+ strEnd + '.');}
eInput.focus(); eInput.select(); return false;}
}
this.matchedFormat=this.AllowedFormats[firstMatchAt]; this.lastBoxValidated = null;}
else { if (bRequired && bIsEmpty) { eInput.className = "cal-TextBoxInvalid"; if (this.showHelpAlerts) { alert('This date field is required.\n\nPlease enter a valid date before proceeding.');}
}
else { if (!bRequired && bIsEmpty) { eInput.className = "cal-TextBox";}
else { eInput.className = "cal-TextBoxInvalid"; if (this.showHelpAlerts) { for(i=0;i<this.AllowedFormats.length;i++){ strTemp+=this.AllowedFormats[i]+'\t';}
alert('Please enter a valid date.\n\nExample 01-Jan-2002\n\nValid formats are:\n\n'+strTemp);}
}
}
eInput.focus(); eInput.select(); focusHack=eInput; setTimeout('focusHack.focus();focusHack.select();'); return false;}
}
this.validateDate=validateDate; function formatDate(eInput, strFormat) { if(this.matchedFormat!="") { var d = getDateFromFormat(eInput.value,this.matchedFormat); if(d!=0){ eInput.value = scFormatDate(d, strFormat);}
}
}
this.formatDate=formatDate; function isDate(val,format) { var date = getDateFromFormat(val,format); if (date == 0) { return false;}
return true;}
this.isDate=isDate; function scFormatDate(date,format) { format = format+""; var result = ""; var i_format = 0; var c = ""; var token = ""; var y = date.getFullYear()+""; var M = date.getMonth()+1; var d = date.getDate(); var h = date.getHours(); var m = date.getMinutes(); var s = date.getSeconds(); var yyyy,yy,MMM,MM,dd; if (y.length < 4) { y = y-0+1900;}
y = ""+y; yyyy = y; yy = y.substring(2,4); if (M < 10) { MM = "0"+M;}
else { MM = M;}
MMM = MONTH_NAMES[M-1+12]; if (d < 10) { dd = "0"+d;}
else { dd = d;}
var value = new Object(); value["yyyy"] = yyyy; value["yy"] = yy; value["y"] = y; value["MMM"] = MMM; value["MM"] = MM; value["M"] = M; value["dd"] = dd; value["d"] = d; while (i_format < format.length) { c = format.charAt(i_format); token = ""; while ((format.charAt(i_format) == c) && (i_format < format.length)) { token += format.charAt(i_format); i_format++;}
if (value[token] != null) { result = result + value[token];}
else { result = result + token;}
}
return result;}
this.scFormatDate=scFormatDate; function _isInteger(val) { var digits = "1234567890"; for (var i=0; i < val.length; i++) { if (digits.indexOf(val.charAt(i)) == -1) { return false;}
}
return true;}
function _getInt(str,i,minlength,maxlength) { for (x=maxlength; x>=minlength; x--) { var token = str.substring(i,i+x); if (_isInteger(token)) { return token;}
}
return null;}
function getDateFromFormat(val,format) { val = val+""; format = format+""; var i_val = 0; var i_format = 0; var c = ""; var token = ""; var token2= ""; var x,y; var year = 0; var month = 0; var date = 0; var bYearProvided = false; while (i_format < format.length) { c = format.charAt(i_format); token = ""; while ((format.charAt(i_format) == c) && (i_format < format.length)) { token += format.charAt(i_format); i_format++;}
if (token=="yyyy" || token=="yy" || token=="y") { if (token=="yyyy") { x=4;y=4;}
if (token=="yy") { x=2;y=2;}
if (token=="y") { x=2;y=4;}
year = _getInt(val,i_val,x,y); bYearProvided = true; if (year == null) { return 0;}
if (year.length != token.length){ return 0;}
i_val += year.length;}
else if (token=="MMM") { month = 0; for (var i=0; i<MONTH_NAMES.length; i++) { var month_name = MONTH_NAMES[i]; if (val.substring(i_val,i_val+month_name.length).toLowerCase() == month_name.toLowerCase()) { month = i+1; if (month>12) { month -= 12;}
i_val += month_name.length; break;}
}
if (month == 0) { return 0;}
if ((month < 1) || (month>12)) { return 0
}
}
else if (token=="MM" || token=="M") { x=token.length; y=2; month = _getInt(val,i_val,x,y); if (month == null) { return 0;}
if ((month < 1) || (month > 12)) { return 0;}
i_val += month.length;}
else if (token=="dd" || token=="d") { x=token.length; y=2; date = _getInt(val,i_val,x,y); if (date == null) { return 0;}
if ((date < 1) || (date>31)) { return 0;}
i_val += date.length;}
else { if (val.substring(i_val,i_val+token.length) != token) { return 0;}
else { i_val += token.length;}
}
}
if (i_val != val.length) { return 0;}
if (month == 2) { if ( ( (year%4 == 0)&&(year%100 != 0) ) || (year%400 == 0) ) { if (date > 29){ return false;}
}
else { if (date > 28) { return false;}
}
}
if ((month==4)||(month==6)||(month==9)||(month==11)) { if (date > 30) { return false;}
}
month = month - 1; if (bYearProvided==false) { var dCurrent = new Date(); year = dCurrent.getFullYear();}
var lYear = parseInt(year); if (lYear<=20) { year = 2000 + lYear;}
else if (lYear >=21 && lYear<=99) { year = 1900 + lYear;}
var newdate = new Date(year,month,date,0,0,0); return newdate;}
this.getDateFromFormat=getDateFromFormat;}
var calMgr = new spiffyCalManager(); function ctlSpiffyCalendarBox(strVarName, strFormName, strTextBoxName, strBtnName, strDefaultValue, intBtnMode, onFocus, onBlur, onChange, onClick) { var msNames = new makeArray0('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'); var msDays = new makeArray0(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31); var msDOW = new makeArray0('S','M','T','W','T','F','S'); var blnInConstructor=true; var img_DateBtn_UP=new Image(); var img_DateBtn_OVER=new Image(); var img_DateBtn_DOWN=new Image(); var img_DateBtn_DISABLED=new Image(); var strBtnW; var strBtnH; var strBtnImg; var dteToday=new Date; var dteCur=new Date; var dteMin=new Date; var dteMax=new Date; var scX=4; var scY=4; var strDefDateFmt='dd-MMM-yyyy'; var intDefBtnMode=0; var strDefBtnImgPath=calMgr.DefBtnImgPath; if (typeof(onFocus)=='undefined')
this.onFocus=""; else
this.onFocus=onFocus; if (typeof(onBlur)=='undefined')
this.onBlur=""; else
this.onBlur=onBlur; if (typeof(onChange)=='undefined')
this.onChange=""; else
this.onChange=onChange; if (typeof(onClick)=='undefined')
this.onClick=""; else
this.onClick=onClick; this.varName=strVarName; this.enabled=true; this.readonly=false; this.focusClick=false; this.hideButton=false; this.visible=false; this.displayLeft=false; this.displayTop=false; this.formName=strFormName; this.textBoxName=strTextBoxName; this.btnName=strBtnName; this.required=false; this.x=scX; this.y=scY; this.imgUp=img_DateBtn_UP; this.imgOver=img_DateBtn_OVER; this.imgDown=img_DateBtn_DOWN; this.imgDisabled=img_DateBtn_DISABLED; this.showWeekends=true; this.showHolidays=true; this.disableWeekends=false; this.disableHolidays=false; this.textBoxWidth=160; this.textBoxHeight=20; this.btnImgWidth=strBtnW; this.btnImgHeight=strBtnH; if ((intBtnMode==null)||(intBtnMode<0 && intBtnMode>2)) { intBtnMode=intDefBtnMode
}
switch (intBtnMode) { case 0 :
strBtnImg=strDefBtnImgPath+'btn_date_up.gif'; img_DateBtn_UP.src=strDefBtnImgPath+'btn_date_up.gif'; img_DateBtn_OVER.src=strDefBtnImgPath+'btn_date_over.gif'; img_DateBtn_DOWN.src=strDefBtnImgPath+'btn_date_down.gif'; img_DateBtn_DISABLED.src=strDefBtnImgPath+'btn_date_disabled.gif'; strBtnW = '18'; strBtnH = '20'; break; case 1 :
strBtnImg=strDefBtnImgPath+'btn_date1_up.gif'; img_DateBtn_UP.src=strDefBtnImgPath+'btn_date1_up.gif'; img_DateBtn_OVER.src=strDefBtnImgPath+'btn_date1_over.gif'; img_DateBtn_DOWN.src=strDefBtnImgPath+'btn_date1_down.gif'; img_DateBtn_DISABLED.src=strDefBtnImgPath+'btn_date1_disabled.gif'; strBtnW = '22'; strBtnH = '17'; break; case 2 :
strBtnImg=strDefBtnImgPath+'btn_date2_up.gif'; img_DateBtn_UP.src=strDefBtnImgPath+'btn_date2_up.gif'; img_DateBtn_OVER.src=strDefBtnImgPath+'btn_date2_over.gif'; img_DateBtn_DOWN.src=strDefBtnImgPath+'btn_date2_down.gif'; img_DateBtn_DISABLED.src=strDefBtnImgPath+'btn_date2_disabled.gif'; strBtnW = '34'; strBtnH = '21'; break;}
this.dateFormat=strDefDateFmt; this.useDateRange=false; this.minDate=new Date; this.maxDate=new Date(dteToday.getFullYear()+1, dteToday.getMonth(), dteToday.getDate()); this.minDay = function() { return this.minDate.getDate();}
this.minMonth = function() { return this.minDate.getMonth();}
this.minYear = function() { return this.minDate.getFullYear();}
this.maxDay = function() { return this.maxDate.getDate();}
this.maxMonth = function() { return this.maxDate.getMonth();}
this.maxYear = function() { return this.maxYear.getFullYear();}
function setMinDate(intYear, intMonth, intDay) { this.minDate = new Date(intYear, intMonth-1, intDay);}
this.setMinDate=setMinDate; function setMaxDate(intYear, intMonth, intDay) { this.maxDate = new Date(intYear, intMonth-1, intDay);}
this.setMaxDate=setMaxDate; this.minYearChoice=dteToday.getFullYear()-90; this.maxYearChoice=dteToday.getFullYear()+10; this.textBox= function() { if (!blnInConstructor) { return eval('document.'+this.formName+'.'+this.textBoxName);}
}
this.getSelectedDate = function () { var strTempVal=''; var objEle; if ((typeof this.formName !='undefined') && (typeof this.textBoxName!='undefined')) { objEle=eval('document.'+this.formName+'.'+this.textBoxName); if (objEle && !blnInConstructor) { strTempVal=eval('document.'+this.formName+'.'+this.textBoxName+'.value');}
else { strTempVal=strDefaultValue;}
}
else { strTempVal=strDefaultValue;}
return strTempVal;}
function setSelectedDate(strWhat) { var strTempVal=''; var objEle; eval('document.'+this.formName+'.'+this.textBoxName).value=strWhat; if (!calMgr.isDate(quote(strWhat),quote(this.dateFormat))) { eval('document.'+this.formName+'.'+this.textBoxName).className = "cal-TextBoxInvalid";}
else { eval('document.'+this.formName+'.'+this.textBoxName).className = "cal-TextBox";}
}
this.setSelectedDate=setSelectedDate; function disable() { this.hide(); calMgr.swapImg(this,'.imgDisabled',false); this.enabled=false; eval('document.'+this.formName+'.'+this.textBoxName).disabled=true; eval('document.'+this.formName+'.'+this.textBoxName).className = "cal-TextBoxDisabled"; if (scNN) { eval('document.'+this.formName+'.'+this.textBoxName).onFocus= function() {this.blur();};}
}
this.disable=disable; function enable() { this.enabled=true; calMgr.swapImg(this,'.imgUp',false); eval('document.'+this.formName+'.'+this.textBoxName).disabled=false; eval('document.'+this.formName+'.'+this.textBoxName).className = "cal-TextBox"; if (scNN) { eval('document.'+this.formName+'.'+this.textBoxName).onFocus= null;}
if (!calMgr.isDate(quote(this.getSelectedDate()),quote(this.dateFormat))) { eval('document.'+this.formName+'.'+this.textBoxName).className = "cal-TextBoxInvalid";}
}
this.enable=enable; this.JStoRunOnSelect=''; this.JStoRunOnClear=''; this.JStoRunOnCancel=''; this.hideCombos=true; function makeCalendar(intWhatMonth,intWhatYear,bViewOnly) { if (bViewOnly) {intWhatMonth-=1;}
var strOutput = ''; var intStartMonth=intWhatMonth; var intStartYear=intWhatYear; var intLoop; var strTemp=''; var strDateColWidth; var isWE = false; dteCur.setMonth(intWhatMonth); dteCur.setFullYear(intWhatYear); dteCur.setDate(dteToday.getDate()); dteCur.setHours(0);dteCur.setMinutes(0);dteCur.setSeconds(0);dteCur.setMilliseconds(0); if (!(bViewOnly)) { strTemp='<form name="spiffyCal">';}
if (scNN6) { strOutput += strTemp +'<table width="185" border="3" class="cal-Table" cellspacing="0" cellpadding="0"><tr>';}
else { strOutput += '<table width="185" border="3" class="cal-Table" cellspacing="0" cellpadding="0">'+strTemp+'<tr>';}
if (!(bViewOnly)) { strOutput += '<td class="cal-HeadCell" align="center" width="100%"><a href="javascript:'+this.varName+'.clearDay();"><img name="calbtn1" src="'+strDefBtnImgPath+'btn_del_small.gif" border="0" width="12" height="10"></a>&nbsp;&nbsp;<a href="javascript:'+this.varName+'.scrollMonth(-1);" class="cal-DayLink">&lt;</a>&nbsp;<SELECT class="cal-ComboBox" NAME="cboMonth" onChange="'+this.varName+'.changeMonth();">'; for (intLoop=0; intLoop<12; intLoop++) { if (intLoop == intWhatMonth) strOutput += '<OPTION VALUE="' + intLoop + '" SELECTED>' + msNames[intLoop] + '<\/OPTION>'; else strOutput += '<OPTION VALUE="' + intLoop + '">' + msNames[intLoop] + '<\/OPTION>';}
strOutput += '<\/SELECT><SELECT class="cal-ComboBox" NAME="cboYear" onChange="'+this.varName+'.changeYear();">'; for (intLoop=this.minYearChoice; intLoop<this.maxYearChoice; intLoop++) { if (intLoop == intWhatYear) strOutput += '<OPTION VALUE="' + intLoop + '" SELECTED>' + intLoop + '<\/OPTION>'; else strOutput += '<OPTION VALUE="' + intLoop + '">' + intLoop + '<\/OPTION>';}
strOutput += '<\/SELECT>&nbsp;<a href="javascript:'+this.varName+'.scrollMonth(1);" class="cal-DayLink">&gt;</a>&nbsp;&nbsp;<a href="javascript:'+this.varName+'.hide(); showSelects(document.'+this.formName+');"><img name="calbtn2" src="'+strDefBtnImgPath+'btn_close_small.gif" border="0" width="12" height="10"></a><\/td><\/tr><tr><td width="100%" align="center">';}
else { strOutput += '<td class="cal-HeadCell" align="center" width="100%">'+msNames[intWhatMonth]+'-'+intWhatYear+'<\/td><\/tr><tr><td width="100%" align="center">';}
firstDay = new Date(intWhatYear,intWhatMonth,1); startDay = firstDay.getDay(); if (((intWhatYear % 4 == 0) && (intWhatYear % 100 != 0)) || (intWhatYear % 400 == 0))
msDays[1] = 29; else
msDays[1] = 28; strOutput += '<table width="185" cellspacing="1" cellpadding="2" border="0"><tr>'; for (intLoop=0; intLoop<7; intLoop++) { if (intLoop==0 || intLoop==6) { strDateColWidth="15%"
}
else
{ strDateColWidth="14%"
}
strOutput += '<td class="cal-HeadCell" width="' + strDateColWidth + '" align="center" valign="middle">'+ msDOW[intLoop] +'<\/td>';}
strOutput += '<\/tr><tr>'; var intColumn = 0; var intLastMonth = intWhatMonth - 1; var intLastYear = intWhatYear; if (intLastMonth == -1) { intLastMonth = 11; intLastYear=intLastYear-1;}
for (intLoop=0; intLoop<startDay; intLoop++, intColumn++) { strOutput += this.getDayLink(true,(msDays[intLastMonth]-startDay+intLoop+1),intLastMonth,intLastYear,bViewOnly,isWE);}
for (intLoop=1; intLoop<=msDays[intWhatMonth]; intLoop++, intColumn++) { if ((intColumn % 6)==0) {isWE=true } else {isWE=false}
strOutput += this.getDayLink(false,intLoop,intWhatMonth,intWhatYear,bViewOnly,isWE); if (intColumn == 6) { strOutput += '<\/tr><tr>'; intColumn = -1;}
}
var intNextMonth = intWhatMonth+1; var intNextYear = intWhatYear; if (intNextMonth==12) { intNextMonth=0; intNextYear=intNextYear+1;}
if (intColumn > 0) { for (intLoop=1; intColumn<7; intLoop++, intColumn++) { strOutput += this.getDayLink(true,intLoop,intNextMonth,intNextYear,bViewOnly);}
strOutput += '<\/tr><\/table><\/td><\/tr>';}
else { strOutput = strOutput.substr(0,strOutput.length-4); strOutput += '<\/table><\/td><\/tr>';}
if (scNN6) { strOutput += '<\/table><\/form>';}
else { strOutput += '<\/form><\/table>';}
dteCur.setDate(1); dteCur.setHours(0);dteCur.setMinutes(0);dteCur.setSeconds(0);dteCur.setMilliseconds(0); dteCur.setMonth(intStartMonth); dteCur.setFullYear(intStartYear); return strOutput;}
this.makeCalendar=makeCalendar; function writeControl() { var strHold=''; var strTemp=''; var strTempMinDate=''; var strTempMaxDate=''; if (this.readonly) { strTemp=' onFocus="this.blur();" readonly ';}
if (this.focusClick) { strTemp=' onFocus="'+this.varName+'.show();" ';}
if (this.onFocus.length > 0) { strTemp=strTemp+' onFocus="'+this.onFocus+'" ';}
if (!(this.useDateRange)) { onChange='calMgr.validateDate(document.'+this.formName+'.'+this.textBoxName+','+this.varName+'.required);'; onBlur='calMgr.formatDate(document.'+this.formName+'.'+this.textBoxName+','+this.varName+'.dateFormat);';}
else { strTempMinDate=this.minDate.getDate()+'-'+msNames[this.minDate.getMonth()]+'-'+this.minDate.getFullYear(); strTempMaxDate=this.maxDate.getDate()+'-'+msNames[this.maxDate.getMonth()]+'-'+this.maxDate.getFullYear(); onChange='calMgr.validateDate('+'document.'+this.formName+'.'+this.textBoxName+',' +this.varName+'.required,'+this.varName+'.minDate,'+this.varName+'.maxDate);'; onBlur='calMgr.formatDate(document.'+this.formName+'.'+this.textBoxName+','+this.varName+'.dateFormat);'
}
if (this.onBlur.length > 0)
onBlur=onBlur+' '+this.onBlur; if (this.onChange.length > 0) { onChange=onChange+' '+this.onChange;}
strTemp+=' onChange="'+onChange+'" onBlur="'+onBlur+'" '; strHold='<input class="cal-TextBox" type="text" name="' + this.textBoxName + '"' + strTemp + 'size="12" value="' + this.getSelectedDate() + '">'; if (!scIE) { strTemp=' href="javascript:showSelects(this.form);calClick();return false; " ';}
else { strTemp='';}
if ((this.focusClick==false) || (this.focusClick==true && this.hideButton==false)) { strHold+='<a class="so-BtnLink"'+strTemp; strHold+=' onmouseover="calMgr.swapImg(' + this.varName + ',\'.imgOver\',false);" '; strHold+='onmouseout="calMgr.swapImg(' + this.varName + ',\'.imgUp\',false);" '; strHold+='onclick="calMgr.swapImg(' + this.varName + ',\'.imgDown\',true);'; if (this.onClick.length > 0)
strHold=strHold+' '+this.onClick; strHold+=this.varName+'.show();">'; strHold+='<img align="absmiddle" border="0" name="' + this.btnName + '" src="' + strBtnImg +'" width="'+ strBtnW +'" height="'+ strBtnH +'"></a>';}
document.write(strHold);}
this.writeControl=writeControl; function show() { hideSelects(eval('document.'+this.formName)); var strCurSelDate = calMgr.lastSelectedDate; if (!this.enabled) { return }
calMgr.hideAllCalendars(this); if (this.visible) { this.hide(); showSelects(eval('document.'+this.formName));}
else { if (document.images['calbtn1']!=null ) document.images['calbtn1'].src=img_Del.src; if (document.images['calbtn2']!=null ) document.images['calbtn2'].src=img_Close.src; if (this.focusClick==true && this.hideButton==true) { scX=this.x; scY=this.y;}
else { if ( scIE ) { if (this.displayLeft) { scX = getOffsetLeft(document.images[this.btnName])-192+ document.images[this.btnName].width ;}
else { scX = getOffsetLeft(document.images[this.btnName]);}
if (this.displayTop) { scY = getOffsetTop(document.images[this.btnName]) -138 ;}
else { scY = getOffsetTop(document.images[this.btnName]) + document.images[this.btnName].height + 2;}
}
else if (scNN){ if (this.displayLeft) { scX = document.images[this.btnName].x - 192+ document.images[this.btnName].width;}
else { scX = document.images[this.btnName].x;}
if (this.displayTop) { scY = document.images[this.btnName].y -134;}
else { scY = document.images[this.btnName].y + document.images[this.btnName].height + 2;}
}
}
if (this.hideCombos) {toggleCombos('hidden');}
if (this.getSelectedDate()==''){ if (!(dteCur)) { domlay('spiffycalendar',1,scX,scY,this.makeCalendar(dteToday.getMonth(),dteToday.getFullYear()));}
else { domlay('spiffycalendar',1,scX,scY,this.makeCalendar(dteCur.getMonth(),dteCur.getFullYear()));}
}
else { if (calMgr.isDate(quote(this.getSelectedDate()),quote(this.dateFormat))) { dteCur = calMgr.getDateFromFormat(quote(this.getSelectedDate()),quote(this.dateFormat)); dteCur.setHours(0);dteCur.setMinutes(0);dteCur.setSeconds(0);dteCur.setMilliseconds(0);}
else { dteCur=calMgr.lastSelectedDate;}
domlay('spiffycalendar',1,scX,scY,this.makeCalendar(dteCur.getMonth(),dteCur.getFullYear()));}
this.visible=true;}
}
this.show=show; function hide() { domlay('spiffycalendar',0,scX,scY); this.visible = false; calMgr.swapImg(this,'.imgUp',false); if (this.hideCombos) {toggleCombos('visible');}
}
this.hide=hide; function clearDay() { showSelects(eval('document.'+this.formName)); eval('document.' + this.formName + '.' + this.textBoxName + '.value = \'\''); this.hide(); if (this.JStoRunOnClear!=null)
eval(unescape(this.JStoRunOnClear)); eval('document.'+this.formName+'.'+this.textBoxName).className = "cal-TextBox"; if (this.required) { eval('document.'+this.formName+'.'+this.textBoxName).className = "cal-TextBoxInvalid";}
}
this.clearDay=clearDay; function changeDay(intWhatDay) { showSelects(eval('document.'+this.formName)); dteCur.setDate(intWhatDay); dteCur.setHours(0);dteCur.setMinutes(0);dteCur.setSeconds(0);dteCur.setMilliseconds(0); this.textBox().value=calMgr.scFormatDate(dteCur,this.dateFormat); this.textBox().focus(); this.hide(); if (this.JStoRunOnSelect!=null)
eval(unescape(this.JStoRunOnSelect)); eval('document.'+this.formName+'.'+this.textBoxName).className = "cal-TextBox";}
this.changeDay=changeDay; function scrollMonth(intAmount) { var intMonthCheck; var intYearCheck; if (scIE) { intMonthCheck = document.forms["spiffyCal"].cboMonth.selectedIndex + intAmount;}
else if (scNN) { intMonthCheck = document.spiffycalendar.document.forms["spiffyCal"].cboMonth.selectedIndex + intAmount;}
if (intMonthCheck < 0) { intYearCheck = dteCur.getFullYear() - 1; if ( intYearCheck < this.minYearChoice ) { intYearCheck = this.minYearChoice; intMonthCheck = 0;}
else { intMonthCheck = 11;}
dteCur.setFullYear(intYearCheck);}
else if (intMonthCheck >11) { intYearCheck = dteCur.getFullYear() + 1; if ( intYearCheck > this.maxYearChoice-1 ) { intYearCheck = this.maxYearChoice-1; intMonthCheck = 11;}
else { intMonthCheck = 0;}
dteCur.setFullYear(intYearCheck);}
if (scIE) { dteCur.setMonth(document.forms["spiffyCal"].cboMonth.options[intMonthCheck].value);}
else if (scNN) { dteCur.setMonth(document.spiffycalendar.document.forms["spiffyCal"].cboMonth.options[intMonthCheck].value );}
domlay('spiffycalendar',1,scX,scY,this.makeCalendar(dteCur.getMonth(),dteCur.getFullYear()));}
this.scrollMonth=scrollMonth; function changeMonth() { if (scIE) { dteCur.setMonth(document.forms["spiffyCal"].cboMonth.options[document.forms["spiffyCal"].cboMonth.selectedIndex].value); domlay('spiffycalendar',1,scX,scY,this.makeCalendar(dteCur.getMonth(),dteCur.getFullYear()));}
else if (scNN) { dteCur.setMonth(document.spiffycalendar.document.forms["spiffyCal"].cboMonth.options[document.spiffycalendar.document.forms["spiffyCal"].cboMonth.selectedIndex].value); domlay('spiffycalendar',1,scX,scY,this.makeCalendar(dteCur.getMonth(),dteCur.getFullYear()));}
}
this.changeMonth=changeMonth; function changeYear() { if (scIE) { dteCur.setFullYear(document.forms["spiffyCal"].cboYear.options[document.forms["spiffyCal"].cboYear.selectedIndex].value); domlay('spiffycalendar',1,scX,scY,this.makeCalendar(dteCur.getMonth(),dteCur.getFullYear()));}
else if (scNN) { dteCur.setFullYear(document.spiffycalendar.document.forms["spiffyCal"].cboYear.options[document.spiffycalendar.document.forms["spiffyCal"].cboYear.selectedIndex].value); domlay('spiffycalendar',1,scX,scY,this.makeCalendar(dteCur.getMonth(),dteCur.getFullYear()));}
}
this.changeYear=changeYear; function getDayLink(blnIsGreyDate,intLinkDay,intLinkMonth,intLinkYear,bViewOnly,isWE) { var templink; var tempLinkClass='calDay-Link'; var tempClass='cal-DayCell'; var tempDt=''; var isHol=-1; var holTxt=''; if (isWE==true && this.showWeekends==true) {tempClass='cal-WeekendCell';}
tempDt=msNames[intLinkMonth]+'-'+intLinkDay; if (this.showHolidays) {isHol=calMgr.isHoliday(tempDt); if (isHol!=-1) {holTxt=' title="'+calMgr.HolidaysDesc[isHol]+'"'; tempClass='cal-HolidayCell';}}
if (!(this.useDateRange)) { if (blnIsGreyDate) { templink='<td align="center" class="cal-GreyDate">' + intLinkDay + '<\/td>';}
else { if (isDayToday(intLinkDay)) { if (!(bViewOnly)) { templink='<td align="center" class="'+tempClass+'">' + '<a class="cal-TodayLink" '+holTxt+' onmouseover="self.status=\' \';return true" href="javascript:'+this.varName+'.changeDay(' + intLinkDay + ');">' + intLinkDay + '<\/a><\/td>';}
else { templink='<td align="center" class="'+tempClass+'"><span class="cal-Today">' + intLinkDay +'<\/span><\/td>';}
}
else { if (!(bViewOnly)) { templink='<td align="center" class="'+tempClass+'">' + '<a class="cal-DayLink" '+holTxt+' onmouseover="self.status=\' \';return true" href="javascript:'+this.varName+'.changeDay(' + intLinkDay + ');">' + intLinkDay + '<\/a>' +'<\/td>';}
else { templink='<td align="center" class="'+tempClass+'"><span class="cal-Day">' + intLinkDay + '<\/span><\/td>';}
}
}
}
else { if (this.isDayValid(intLinkDay,intLinkMonth,intLinkYear)) { if (blnIsGreyDate){ templink='<td align="center" class="cal-GreyDate">' + intLinkDay + '<\/td>';}
else { if (isDayToday(intLinkDay)) { if (!(bViewOnly)) { templink='<td align="center" class="'+tempClass+'">' + '<a class="cal-TodayLink" '+holTxt+' onmouseover="self.status=\' \';return true" href="javascript:'+this.varName+'.changeDay(' + intLinkDay + ');">' + intLinkDay + '<\/a>' +'<\/td>';}
else { templink='<td align="center" class="'+tempClass+'"><span class="cal-Today">' + intLinkDay + '<\/span><\/td>';}
}
else { if (!(bViewOnly)) { templink='<td align="center" class="'+tempClass+'">' + '<a class="cal-DayLink" '+holTxt+' onmouseover="self.status=\' \';return true" href="javascript:'+this.varName+'.changeDay(' + intLinkDay + ');">' + intLinkDay + '<\/a>' +'<\/td>';}
else { templink='<td align="center" class="'+tempClass+'"><span class="cal-Day">' + intLinkDay +'<\/span><\/td>';}
}
}
}
else { templink='<td align="center" class="cal-GreyInvalidDate">'+ intLinkDay + '<\/td>';}
}
return templink;}
this.getDayLink=getDayLink; function toggleCombos(showHow){ var i; var j; var cboX; var cboY; for (i=0;i<document.forms.length;i++) { for (j=0;j<document.forms[i].elements.length;j++) { if (document.forms[i].elements[j].tagName == "SELECT") { if (document.forms[i].name != "spiffyCal") { cboX = getOffsetLeft(document.forms[i].elements[j]); cboY = getOffsetTop(document.forms[i].elements[j]); if ( ((cboX>=scX-15) && (cboX<=scX+200)) && ((cboY>=scY-15) && (cboY<=scY+145)) )
document.forms[i].elements[j].style.visibility=showHow; cboX = cboX + parseInt(document.forms[i].elements[j].style.width); cboY=cboY+15; if ( ((cboX>=scX+15) && (cboX<=scX+200)) && ((cboY>=scY-15) && (cboY<=scY+145)) )
document.forms[i].elements[j].style.visibility=showHow;}
}
}
}
}
function isDayToday(intWhatDay) { if ((dteCur.getFullYear() == dteToday.getFullYear()) && (dteCur.getMonth() == dteToday.getMonth()) && (intWhatDay == dteToday.getDate())) { return true;}
else { return false;}
}
function isDayValid(intWhatDay, intWhatMonth, intWhatYear){ dteCur.setDate(intWhatDay); dteCur.setMonth(intWhatMonth); dteCur.setFullYear(intWhatYear); dteCur.setHours(0);dteCur.setMinutes(0);dteCur.setSeconds(0);dteCur.setMilliseconds(0); if ((dteCur>=this.minDate) && (dteCur<=this.maxDate)) { return true;}
else { return false;}
}
this.isDayValid=isDayValid; calMgr.addCalendar(this); blnInConstructor=false;}
function quote(sWhat) { return '\''+sWhat+'\'';}
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) { 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"
}
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"
}
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"}
}
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"}
}
if (content){ if (document.layers){ sprite=document.layers[''+id+''].document; sprite.open(); sprite.write(content); sprite.close();}
else if (document.all) document.all[''+id+''].innerHTML = content; else if (document.getElementById){ 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 makeArray0() { for (i = 0; i<makeArray0.arguments.length; i++)
this[i] = makeArray0.arguments[i];}
