
var popCalDstFld;
var temp;
var popCalWin;
function popupCal()
{
var tmpDate=new Date();
var tmpString="";
var tmpNum=0;
var popCalDateVal;
var dstWindowName="";
popCalWin=new Object();
if(arguments.length<2)
{
alert("popupCal(): Wrong number of arguments.");
return void(0);}
dstWindowName=popupCal.arguments[0];
popCalDstFld=popupCal.arguments[1];
temp=popupCal.arguments[1];
popCalDstFmt=popupCal.arguments[2];
popCalMonths=popupCal.arguments[3];
popCalDays=popupCal.arguments[4];
popCalToday=popupCal.arguments[5];
popCalClose=popupCal.arguments[6];
popCalTitle=popupCal.arguments[7];
popCalFirstDayWeek=popupCal.arguments[8];
if(popCalDstFld!="")
popCalDstFld=document.getElementById(popCalDstFld);
if(popCalDstFmt=="")
popCalDstFmt="m/d/yyyy";
if(popCalMonths=="")
popCalMonths="January,February,March,April,May,June,July,August,September,October,November,December";
if(popCalDays=="")
popCalDays="Sun,Mon,Tue,Wed,Thu,Fri,Sat";
if(popCalToday==""||typeof popCalToday=="undefined")
popCalToday="Today";
if(popCalClose==""||typeof popCalClose=="undefined")
popCalClose="Close";
if(popCalTitle==""||typeof popCalTitle=="undefined")
popCalTitle="Calendar";
tmpString=new String(popCalDstFld.value);
if(tmpString=="")
popCalDateVal=new Date()
else
{
tmpNum=tmpString.lastIndexOf("/");
if((tmpString.length - tmpNum)==3)
{
tmpString=tmpString.substring(0,tmpNum + 1)+"20"+tmpString.substr(tmpNum+1);
popCalDateVal=new Date(tmpString);}
else
{
popCalDateVal=getDateFromFormat(tmpString,popCalDstFmt);}}
if(popCalDateVal.toString()=="NaN"||popCalDateVal.toString()=="0")
{
popCalDateVal=new Date();
popCalDstFld.value="";}
var dateString=String(popCalDateVal.getMonth()+1)+"/"+ String(popCalDateVal.getDate())+"/"+ String(popCalDateVal.getFullYear());
reloadCalPopup(dateString,dstWindowName);
return void(0);}
function closeCalPopup()
{
popCalWin.close();
return void(0);}
function reloadCalPopup()
{
var windowFeatures="toolbar=no, location=no, status=no, menubar=no, scrollbars=no, resizable=no, height=270, width=270, top="+((screen.height - 270)/2).toString()+",left="+((screen.width - 270)/2).toString();
var tmpDate=new Date(reloadCalPopup.arguments[0]);
if(tmpDate.toString()=="Invalid Date")
tmpDate=new Date();
tmpDate.setDate(1);
var popCalData=calPopupSetData(tmpDate,reloadCalPopup.arguments[1]);
if(popCalWin.toString()=="[object Object]")
{
popCalWin=window.open("",reloadCalPopup.arguments[1],windowFeatures);
popCalWin.opener=self;
popCalWin.focus();}
else
{
popCalWin.document.close();
popCalWin.document.clear();}
popCalWin.document.write(popCalData);
return void(1);}
function calPopupSetData(firstDay,dstWindowName)
{
var popCalData="";
var lastDate=0;
var fnt=new Array("<FONT SIZE=\"1\">","<B><FONT SIZE=\"2\">","<FONT SIZE=\"2\" COLOR=\"#EF741D\"><B>");
var dtToday=new Date();
var thisMonth=firstDay.getMonth();
var thisYear=firstDay.getFullYear();
var nPrevMonth=(thisMonth==0)?11:(thisMonth - 1);
var nNextMonth=(thisMonth==11)?0:(thisMonth + 1);
var nPrevMonthYear=(nPrevMonth==11)?(thisYear - 1):thisYear;
var nNextMonthYear=(nNextMonth==0)?(thisYear + 1):thisYear;
var sToday=String((dtToday.getMonth()+1)+"/01/"+ dtToday.getFullYear());
var sPrevMonth=String((nPrevMonth+1)+"/01/"+ nPrevMonthYear);
var sNextMonth=String((nNextMonth+1)+"/01/"+ nNextMonthYear);
var sPrevYear1=String((thisMonth+1)+"/01/"+(thisYear - 1));
var sNextYear1=String((thisMonth+1)+"/01/"+(thisYear + 1));
var tmpDate=new Date(sNextMonth);
tmpDate=new Date(tmpDate.valueOf()- 1001);
lastDate=tmpDate.getDate();
if(this.popCalMonths.split)
{
var monthNames=this.popCalMonths.split(",");
var dayNames=this.popCalDays.split(",");}
else
{
var monthNames=new Array("January","February","March","April","May","June","July","August","September","October","November","December");
var dayNames=new Array("Sun","Mon","Tue","Wed","Thu","Fri","Sat")}
var styles="<style><!-- body{font-family:Arial,Helvetica,sans-serif;font-size:9pt}; td {  font-family: Arial, Helvetica, sans-serif; font-size: 9pt; color: #666666}; A { text-decoration: none; };TD.day { border-bottom: solid black; border-width: 0px; }--></style>"
var cellAttribs="align=\"center\" class=\"day\" BGCOLOR=\"#F1F1F1\"onMouseOver=\"temp=this.style.backgroundColor;this.style.backgroundColor='#CCCCCC';\" onMouseOut=\"this.style.backgroundColor=temp;\""
var cellAttribs2="align=\"center\" BGCOLOR=\"#F1F1F1\" onMouseOver=\"temp=this.style.backgroundColor;this.style.backgroundColor='#CCCCCC';\" onMouseOut=\"this.style.backgroundColor=temp;\""
var htmlHead="<HTML><HEAD><TITLE>"+popCalTitle+"</TITLE>"+ styles +"</HEAD><BODY BGCOLOR=\"#F1F1F1\" TEXT=\"#000000\" LINK=\"#364180\" ALINK=\"#FF8100\" VLINK=\"#424282\">";
var htmlTail="</BODY></HTML>";
var closeAnchor="<CENTER><input type=button value=\""+popCalClose+"\" onClick=\"javascript:window.opener.closeCalPopup()\"></CENTER>";
var todayAnchor="<A HREF=\"javascript:window.opener.reloadCalPopup('"+sToday+"','"+dstWindowName+"');\">"+popCalToday+"</A>";
var prevMonthAnchor="<A HREF=\"javascript:window.opener.reloadCalPopup('"+sPrevMonth+"','"+dstWindowName+"');\">"+ monthNames[nPrevMonth]+"</A>";
var nextMonthAnchor="<A HREF=\"javascript:window.opener.reloadCalPopup('"+sNextMonth+"','"+dstWindowName+"');\">"+ monthNames[nNextMonth]+"</A>";
var prevYear1Anchor="<A HREF=\"javascript:window.opener.reloadCalPopup('"+sPrevYear1+"','"+dstWindowName+"');\">"+(thisYear-1)+"</A>";
var nextYear1Anchor="<A HREF=\"javascript:window.opener.reloadCalPopup('"+sNextYear1+"','"+dstWindowName+"');\">"+(thisYear+1)+"</A>";
popCalData +=(htmlHead + fnt[1]);
popCalData +=("<DIV align=\"center\">");
popCalData +=("<TABLE BORDER=\"0\" cellspacing=\"0\" callpadding=\"0\" width=\"250\"><TR><TD width=\"45\">&nbsp</TD>");
popCalData +=("<TD width=\"45\" align=\"center\" "+ cellAttribs2);
popCalData +=(" >");
popCalData +=(fnt[0]+prevYear1Anchor+"</FONT></TD>");
popCalData +=("<TD width=\"70\" align=\"center\" "+cellAttribs2);
popCalData +=(" >");
popCalData +=(fnt[0]+todayAnchor+"</FONT></TD>");
popCalData +=("<TD width=\"45\" align=\"center\" "+cellAttribs2);
popCalData +=(" >");
popCalData +=(fnt[0]+nextYear1Anchor+"</FONT></TD><TD width=\"45\">&nbsp</TD>");
popCalData +=("</TR></TABLE>");
popCalData +=("<TABLE BORDER=\"0\" cellspacing=\"0\" callpadding=\"0\" width=\"250\">");
popCalData +=("<TR><TD width=\"55\" align=\"center\" "+cellAttribs2);
popCalData +=(" >");
popCalData +=(fnt[0]+ prevMonthAnchor +"</FONT></TD>");
popCalData +=("<TD width=\"140\" align=\"center\">");
popCalData +=("&nbsp;&nbsp;"+fnt[1]+"<FONT COLOR=\"#000000\">"+ monthNames[thisMonth]+", "+ thisYear +"&nbsp;&nbsp;</FONT></TD>");
popCalData +=("<TD width=\"55\" align=\"center\" "+cellAttribs2);
popCalData +=(" >");
popCalData +=(fnt[0]+nextMonthAnchor+"</FONT></TD></TR></TABLE><BR>");
popCalData +=("<TABLE BORDER=\"0\" cellspacing=\"2\" cellpadding=\"1\"  width=\"245\">");
popCalData +=("");
popCalData +=("<TR>");
var xday=0;
for(xday=0;xday<7;xday++)
{
popCalData +=("<TD width=\"35\" align=\"center\">"+fnt[1]+"<FONT COLOR=\"#000000\">"+dayNames[(xday+popCalFirstDayWeek)%7]+"</FONT></TD>");};
popCalData +=("</TR>");
var calDay=0;
var monthDate=1;
var weekDay=firstDay.getDay();
do
{
popCalData +=("<TR>");
for(calDay=0;calDay<7;calDay++)
{
if(((weekDay+7-popCalFirstDayWeek)%7!=calDay)||(monthDate>lastDate))
{
popCalData +=("<TD width=\"35\">"+fnt[1]+"&nbsp;</FONT></TD>");
continue;}
else
{
anchorVal="<A HREF=\"javascript:window.opener.calPopupSetDate(window.opener.popCalDstFld,'"+ constructDate(monthDate,thisMonth+1,thisYear)+"');window.opener.closeCalPopup()\">";
jsVal="javascript:window.opener.calPopupSetDate(window.opener.popCalDstFld,'"+ constructDate(monthDate,thisMonth+1,thisYear)+"');window.opener.closeCalPopup()";
popCalData +=("<TD width=\"35\" "+cellAttribs+" onClick=\""+jsVal+"\">");
if((firstDay.getMonth()==dtToday.getMonth())&&(monthDate==dtToday.getDate())&&(thisYear==dtToday.getFullYear()))
popCalData +=(anchorVal+fnt[2]+monthDate+"</A></FONT></TD>");
else
popCalData +=(anchorVal+fnt[1]+monthDate+"</A></FONT></TD>");
weekDay++;
monthDate++;}}
weekDay=popCalFirstDayWeek;
popCalData +=("</TR>");}while(monthDate<=lastDate);
popCalData +=("</TABLE></DIV><BR>");
popCalData +=(closeAnchor+"</FONT>"+htmlTail);
return(popCalData);}
function calPopupSetDate()
{
calPopupSetDate.arguments[0].value=calPopupSetDate.arguments[1];}
function padZero(num)
{
return((num<=9)?("0"+ num):num);}
function constructDate(d,m,y)
{
var fmtDate=this.popCalDstFmt
fmtDate=fmtDate.replace('dd',padZero(d))
fmtDate=fmtDate.replace('d',d)
fmtDate=fmtDate.replace('MM',padZero(m))
fmtDate=fmtDate.replace('M',m)
fmtDate=fmtDate.replace('yyyy',y)
fmtDate=fmtDate.replace('yy',padZero(y%100))
return fmtDate;}
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(var x=maxlength;x>=minlength;x--){
var token=str.substring(i,i+x);
if(token.length<minlength){return null;}
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 x,y;
var now=new Date();
var year=now.getYear();
var month=now.getMonth()+1;
var date=1;
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++);}
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);
if(year==null){return 0;}
i_val +=year.length;
if(year.length==2){
if(year>70){year=1900+(year-0);}
else{year=2000+(year-0);}}}
else if(token=="MM"||token=="M"){
month=_getInt(val,i_val,token.length,2);
if(month==null||(month<1)||(month>12)){return 0;}
i_val+=month.length;}
else if(token=="dd"||token=="d"){
date=_getInt(val,i_val,token.length,2);
if(date==null||(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 0;}}
else{if(date>28){return 0;}}}
if((month==4)||(month==6)||(month==9)||(month==11)){
if(date>30){return 0;}}
var newdate=new Date(year,month-1,date);
return newdate;}