calDateFormat    = "mm/dd/yyyy"


// SET THE INITIAL VALUE OF THE GLOBAL DATE FIELD
function setDateField(dateField){
    
     
     
    if (dateField == "" ){
       calDateField = ""
       
    }
    else{ 
       // ASSIGN THE INCOMING FIELD OBJECT TO A GLOBAL VARIABLE
     
     
     calDateField = dateField
     
    }


    // GET THE VALUE OF THE INCOMING FIELD
   
    inDate = dateField.value
    var temp=dateField.value

	var intFirstPosition=temp.indexOf("/")
	var intSecondPosition=temp.lastIndexOf("/")
		
	var intDay	 = temp.substring(0,intFirstPosition);
	var intMonth = temp.substring(intFirstPosition+1,intSecondPosition);
	var intYear	 = temp.substr(intSecondPosition+1,4);
		
		//alert( "intSecondPosition " + intSecondPosition)
		//alert(intMonth + " intMonth" + intDay + " intDay " + intYear + " intYear");

		temp = intMonth + "/" + intDay + "/" + intYear;
    inDate = temp;
    // SET calDate TO THE DATE IN THE INCOMING FIELD OR DEFAULT TO TODAY'S DATE
    setInitialDate()

    // THE CALENDAR FRAMESET DOCUMENTS ARE CREATED BY JAVASCRIPT FUNCTIONS
    calDocTop    = buildTopCalFrame()
    calDocBottom = buildBottomCalFrame()

    
}


// SET THE INITIAL CALENDAR DATE TO TODAY OR TO THE EXISTING VALUE IN dateField
function setInitialDate(){
     
      
    calDate = new Date(inDate);

    // IF THE INCOMING DATE IS INVALID, USE THE CURRENT DATE
    if (isNaN(calDate)) {

        // ADD CUSTOM DATE PARSING HERE
        
        calDate = new Date()
    }

    // KEEP TRACK OF THE CURRENT DAY VALUE
    calDay  = calDate.getDate();

    // SET DAY VALUE TO 1... 

    calDate.setDate(1)
}


// CREATE THE TOP CALENDAR FRAME
function buildTopCalFrame() {

    // CREATE THE TOP FRAME OF THE CALENDAR
    var calDoc =
        "<HTML>" +
        "<HEAD>" +
		"<STYLE type='text/css'>" +
         "<!--" +
		 "txtentry{font-size:11px;color:black;font-family:verdana;border-width:1;border-style: solid; border-color:#BABABA;}"+
         "</Style>"+
        "</HEAD>" +
        "<BODY bgcolor='#F5FCF5' topmargin='0' leftmargin='0'>" +
        "<FORM NAME='calControl' onSubmit='return false;'>" +
        "<CENTER>" +
        "<TABLE CELLPADDING=0 CELLSPACING=0 BORDER=0>" +
        "<TR><TD><br>" +
        "<CENTER>" +
        getMonthSelect() +
        "<INPUT TYPE=BUTTON NAME='previousYear' VALUE='<<' onClick='parent.opener.setPreviousYear()' id='txtentry'>" +
        "<INPUT NAME='year' VALUE='" + calDate.getFullYear() + "'TYPE=TEXT SIZE=4 MAXLENGTH=4 onChange='parent.opener.setYear()' id='txtentry'>" +
        "<INPUT TYPE=BUTTON NAME='nextYear' VALUE='>>' onClick='parent.opener.setNextYear()' id='txtentry'>" +
        "</CENTER>" +
        "</TD>" +
        "</TR>" +
        "</TABLE>" +
        "</CENTER>" +
        "</FORM>" +
        "</BODY>" +
        "</HTML>"

    return calDoc
}


// CREATE THE BOTTOM CALENDAR FRAME 
// (THE MONTHLY CALENDAR)
function buildBottomCalFrame() {       

    // START CALENDAR DOCUMENT
    var calDoc =  "<HTML>"
    calDoc += "<Head>" +
           "<STYLE type='text/css'>" +
           "<!--" +
		   "txtentry{font-size:11px;color:black;font-family:verdana;border-width:1;border-style: solid; border-color:#BABABA;}"+
          "A{text-decoration: none;}" +
          "</Style></Head><Body bgcolor='#F5FCF5'><Table Border = 0 CellSpacing = 1 CellPadding = 3 Align = Center><TR>"+
          "<TH bgcolor='#5FC453'><font size=2 face=arial color=black>Su</font></TH><TH bgcolor='#5FC453'><font size=2 face=arial color=black>Mo</font></TH><TH bgcolor='#5FC453'><font size=2 face=arial color=black>Tu</font></TH><TH bgcolor='#5FC453'><font size=2 face=arial color=black>We</font></TH><TH bgcolor='#5FC453'><font size=2 face=arial color=black>Th</font></TH><TH bgcolor='#5FC453'><font size=2 face=arial color=black>Fr</font></TH><TH bgcolor='#5FC453'><font size=2 face=arial color=black>Sa</font></TH></TR><TR>" 


    // GET MONTH, AND YEAR FROM GLOBAL CALENDAR DATE
    month   = calDate.getMonth()
    year    = calDate.getFullYear()

    // GET GLOBALLY-TRACKED DAY VALUE (PREVENTS JAVASCRIPT DATE ANOMALIES)
    day     = calDay

    var i   = 0

    // DETERMINE THE NUMBER OF DAYS IN THE CURRENT MONTH
    var days = getDaysInMonth()

    // DETERMINE WHAT DAY OF THE WEEK THE CALENDAR STARTS ON
    var firstOfMonth = new Date (year, month, 1)

    // GET THE DAY OF THE WEEK THE FIRST DAY OF THE MONTH FALLS ON
    var startingPos  = firstOfMonth.getDay()
    days += startingPos

    // KEEP TRACK OF THE COLUMNS, START A NEW ROW AFTER EVERY 7 COLUMNS
    var columnCount = 0

    // MAKE BEGINNING NON-DATE CELLS BLANK
    for (i = 0; i < startingPos; i++) {

        calDoc += "<TD bgcolor=#E9F7E8>&nbsp;</TD>"
	columnCount++
    }

    // DATE CELLS CONTAIN A NUMBER
    for (i = startingPos; i < days; i++) {

        // START A NEW ROW WHEN NECESSARY
        if (columnCount % 7 == 0) {
            calDoc += "</TR><TR>"
        }


        // GET THE DAY CURRENTLY BEING WRITTEN
        currentDay = i-startingPos+1

        // SET THE TYPE OF DAY, THE focusDay GENERALLY APPEARS AS A DIFFERENT COLOR
        if (currentDay == day) {
           calDoc += "<TD bgcolor=#CDEDCB><a href='javascript:parent.opener.returnDate(" + 
                  currentDay + ")'><Font face=arial size='2' Color ='#ff990'><B>" + currentDay + "</B></Font></a></TD>"
        }
        else {
           calDoc += "<TD bgcolor=#CDEDCB><a href='javascript:parent.opener.returnDate(" + 
                  currentDay + ")'><Font face=arial size='2' Color ='#348B30'><B>" + currentDay + "</B></Font></a></TD>"
        }

        columnCount++

    }
    calDoc += "</TR></TABLE></BODY></HTML>" 

    return calDoc
}


// SET FIELD VALUE TO THE DATE SELECTED AND CLOSE THE CALENDAR WINDOW
function returnDate(inDay)
{

    // inDay = THE DAY THE USER CLICKED ON
    calDate.setDate(inDay)

    // SET THE DATE RETURNED TO THE USER
    var day           = calDate.getDate()
    var month         = calDate.getMonth()+1
    var year          = calDate.getFullYear()
    outDate = calDateFormat

    // RETURN ONE OR TWO DIGIT DAY

        outDate = jsReplace(outDate, "dd", day)


    // RETURN ONE OR TWO DIGIT MONTH

        outDate = jsReplace(outDate, "mm", month)




        outDate = jsReplace(outDate, "yyyy", year)


    // SET THE VALUE OF THE FIELD THAT WAS PASSED TO THE CALENDAR
    calDateField.value = outDate
    
	if(calDateField.name == "settledate"){ genlipDate(); }
    // CLOSE THE CALENDAR WINDOW
    top.newWin.close()
    //document.Sample.dateField.value = calDateField.value
    
}




function jsReplace(inString, find, replace) {

    
    if (!inString) {
        return "";
    }

    // REPLACE ALL INSTANCES OF find WITH replace
    if (inString.indexOf(find) != -1) {
        // SEPARATE THE STRING INTO AN ARRAY OF STRINGS USING THE VALUE IN find
        t = inString.split(find)
       
        // JOIN ALL ELEMENTS OF THE ARRAY, SEPARATED BY THE VALUE IN replace
        return (t.join(replace))
    
    }
    else {
        return inString
    }
}





// WRITE THE MONTHLY CALENDAR TO THE BOTTOM CALENDAR FRAME
function writeCalendar() {

    // CREATE THE NEW CALENDAR FOR THE SELECTED MONTH & YEAR
    calDocBottom = buildBottomCalFrame()

    // WRITE THE NEW CALENDAR TO THE BOTTOM FRAME
    top.newWin.frames['bottomCalFrame'].document.open()
    top.newWin.frames['bottomCalFrame'].document.write(calDocBottom)
    top.newWin.frames['bottomCalFrame'].document.close()
}




// SET THE GLOBAL DATE TO THE NEWLY ENTERED YEAR AND REDRAW THE CALENDAR
function setYear() {

    // GET THE NEW YEAR VALUE
    var year  = top.newWin.frames['topCalFrame'].document.calControl.year.value

    calDate.setFullYear(year)
    writeCalendar()
}


// SET THE GLOBAL DATE TO THE PREVIOUS YEAR AND REDRAW THE CALENDAR
function setPreviousYear() {

    var year  = top.newWin.frames['topCalFrame'].document.calControl.year.value
    year--;
    calDate.setFullYear(year)
    top.newWin.frames['topCalFrame'].document.calControl.year.value = year
    writeCalendar()

}



// SET THE GLOBAL DATE TO THE NEXT YEAR AND REDRAW THE CALENDAR
function setNextYear() {

    var year  = top.newWin.frames['topCalFrame'].document.calControl.year.value
        year++
        calDate.setFullYear(year)
        top.newWin.frames['topCalFrame'].document.calControl.year.value = year
        writeCalendar()
}


// GET NUMBER OF DAYS IN MONTH
function getDaysInMonth()  {

    var days
    var month = calDate.getMonth()+1
    var year  = calDate.getFullYear()

    // RETURN 31 DAYS
    if (month==1 || month==3 || month==5 || month==7 || month==8 ||
        month==10 || month==12)  {
        days=31
    }
    // RETURN 30 DAYS
    else if (month==4 || month==6 || month==9 || month==11) {
        days=30
    }
    // RETURN 29 DAYS
    else if (month==2)  {
        if (isLeapYear(year)) {
            days=29
        }
        // RETURN 28 DAYS
        else {
            days=28
        }
    }
    return (days)
}


// CHECK TO SEE IF YEAR IS A LEAP YEAR
function isLeapYear (Year) {

    if ((Year % 4)==0)  {
        return (true)
    }
    else {
        return (false)
    }
}




// BUILD THE MONTH SELECT LIST
function getMonthSelect() {

    monthArray = new Array('January', 'February', 'March', 'April', 'May', 'June',
                               'July', 'August', 'September', 'October', 'November', 'December')

    // DETERMINE MONTH TO SET AS DEFAULT
    var activeMonth = calDate.getMonth()

    // START HTML SELECT LIST ELEMENT
    monthSelect = "<SELECT NAME='month' onChange='parent.opener.setCurrentMonth()' id='txtentry'>"

    // LOOP THROUGH MONTH ARRAY
    for (i in monthArray) {
        
        // SHOW THE CORRECT MONTH IN THE SELECT LIST
        if (i == activeMonth) {
            monthSelect += "<OPTION SELECTED>" + monthArray[i]  
        }
        else {
            monthSelect += "<OPTION>" + monthArray[i] 
        }
    }
    monthSelect += "</SELECT>"

    // RETURN A STRING VALUE WHICH CONTAINS A SELECT LIST OF ALL 12 MONTHS
    return monthSelect
}

// SET THE GLOBAL DATE TO THE SELECTED MONTH AND REDRAW THE CALENDAR
function setCurrentMonth() {

    // GET THE NEWLY SELECTED MONTH AND CHANGE THE CALENDAR ACCORDINGLY
    var month = top.newWin.frames['topCalFrame'].document.calControl.month.selectedIndex

    calDate.setMonth(month)
    writeCalendar()
}







// JAVASCRIPT FUNCTION -- DOES NOTHING (USED FOR THE HREF IN THE CALENDAR CALL)
function doNothing() {
}