//=========================================================================
//  Function iGetMonthNum
//  Purpose:  returns a numbered month when an abriviated month is passed in.
//=========================================================================
//  MOD#     | Date      |  Developer          | Description
//=========================================================================
// 001        01/12/99        RR               Initial Creation
function iGetMonthNum(sMonthAbrv) {
    if (sMonthAbrv.toUpperCase() == 'JAN') return 0;
    else if (sMonthAbrv.toUpperCase() == 'FEB') return 1;
    else if (sMonthAbrv.toUpperCase() == 'MAR') return 2;
    else if (sMonthAbrv.toUpperCase() == 'APR') return 3;
    else if (sMonthAbrv.toUpperCase() == 'MAY') return 4;
    else if (sMonthAbrv.toUpperCase() == 'JUN') return 5;
    else if (sMonthAbrv.toUpperCase() == 'JUL') return 6;
    else if (sMonthAbrv.toUpperCase() == 'AUG') return 7;
    else if (sMonthAbrv.toUpperCase() == 'SEP') return 8;
    else if (sMonthAbrv.toUpperCase() == 'OCT') return 9;
    else if (sMonthAbrv.toUpperCase() == 'NOV') return 10;
    else if (sMonthAbrv.toUpperCase() == 'DEC') return 11;
    else return null;
}
    

//=========================================================================
//  Function objGetJSDate
//  Purpose: returns a JS Date Object when given a STANDARD_DATE date string
//=========================================================================
// MOD#     | Date      |  Developer          | Description
//=========================================================================
// 001        01/12/99        RR               Initial Creation 
function objGetJSDate(sDate) {
    if (sDate != null){   
        var arrDelimiters = new Array(" ", "-", "/");
        var delimiterActual;
        var firstDelimPos; 
        var secondDelimPos;
        var iYear;
            
        for (var i=0; i < arrDelimiters.length; i++) {   
            if (sDate.indexOf(arrDelimiters[i]) != -1) {
                delimiterActual = arrDelimiters[i];
                firstDelimPos = sDate.indexOf(arrDelimiters[i]);
                secondDelimPos = sDate.lastIndexOf(arrDelimiters[i]);
                break;
            }
        }
        switch(delimiterActual) {
           case " ":
           case "-":
              return new Date( parseInt( sDate.substring(secondDelimPos+1, sDate.length), 10 ), //YEAR
                         parseInt( iGetMonthNum(sDate.substring(firstDelimPos+1, secondDelimPos)), 10 ), //MONTH
                         parseInt( sDate.substring(0, firstDelimPos), 10 ) ); //DAY
              break;
           case "/":
              iYear = parseInt( sDate.substring(secondDelimPos+1, sDate.length), 10 );
              if (iYear < 100) {
			      if (iYear < 50) {  iYear = iYear + 2000; }
			      if (iYear >= 50) { iYear = iYear + 1900; }
              }
              return new Date(parseInt( sDate.substring(secondDelimPos+1, sDate.length), 10 ), //YEAR
                               parseInt( sDate.substring(0, firstDelimPos)-1, 10 ), //MONTH
                               parseInt( sDate.substring(firstDelimPos+1, secondDelimPos), 10 ) ); //DAY
              break;
        }
         
    }
    else return new Date();
}

//=========================================================================
//  Function bIsDateBlank
//  Purpose: returns true or false if the value of the text input is blank
//=========================================================================
function bIsDateBlank(objElem) {
    var sTestValue = ""
    if (objElem.type.toUpperCase().indexOf("TEXT") != -1)
        sTestValue = objElem.value
    else {   
        if (objElem.type.toUpperCase().indexOf("SELECT") != -1) {
            sTestValue =  objElem.options[objElem.selectedIndex].text    
        } else {
            return false    
        }    
    }    
            
    if ( (sTestValue  == null) || 
         (sTestValue == "") ||
         (sTestValue.toUpperCase() == 'NULL') || 
         (sTestValue.length == 0) ) {
         return true;
    }        
    else {
        for (var i=0; i<sTestValue.length; i++) {
            if (sTestValue.charCodeAt(i) > 32) 
                return false;
        }   
        return true;
    }
}

//=========================================================================
//  Function popupCalendar
//  Purpose: displays the popupCalendar dialog when the user selects a date
//				edit box
//========================================================================= 
function popupCalendar(refocus){

      if (document.layers)
		  return true;

      var edit = event.srcElement;
      var jsDate  = objGetJSDate();
      


      if ( bIsDateBlank(edit) ) {
          var jsDate  = objGetJSDate();
      }
      else {
          var jsDate  = objGetJSDate(edit.value);
      }
      
      var arrArgs = new Array(jsDate, edit, false, false)
      var calLoc  = "Calendar.htm"
      
      window.showModalDialog(calLoc, arrArgs, "help:no")
      
      if (!(refocus == '')) refocus.focus();
  }
