var objCurrentInputObject;
var bCalendarInserted   = 0;
var iTimeRounding       = 1; // 5;
var strCalendarHint     = "";
var bShowTimeInCalendar = 1;

var bUseActiveXCalendar = 0;

if(iTimeRounding < 1)               { iTimeRounding = 1; };

function SetRounding(iRounding)     { iTimeRounding = iRounding;    };
function ShowCalendarTime(bValue)   { bShowTimeInCalendar = bValue; };   // Enable / Disable time control in calendar.
function SetCalendarHint(strHint)   { strCalendarHint = strHint;    };   // Remember the last time entered into the calendar on this page.

function ShowSelects(bVisible)
{ selects = document.getElementsByTagName("SELECT");
  bVisible ? strShowHide = "visible" : strShowHide = "hidden";

  for(i=0 ; i < selects.length ; i++)
  {   bFlip = 1;
      if(selects[i].id == "CALAMPM")  { bFlip = 0; };
      if(selects[i].id == "CALHOURS") { bFlip = 0; };
      if(selects[i].id == "CALMINS")  { bFlip = 0; };

      if(bFlip == 1)
      { selx=0; 
        sely=0; 
        var selp;
          
        if(selects[i].offsetParent)
        { selp = selects[i]; 
          while(selp.offsetParent)
          { selp =  selp.offsetParent; 
            selx += selp.offsetLeft; 
            sely += selp.offsetTop;
          };
        };
      
        selx += selects[i].offsetLeft; 
        sely = 50; // sely += selects[i].offsetTop;
        selw =  selects[i].offsetWidth; 
        selh =  selects[i].offsetHeight;

        selects[i].style.visibility = strShowHide; 
      };
  };
};

function OpenCalendar(objInput)
{ if(bCalendarInserted == 0) { CalendarInsert(); };

  objCal                = document.getElementById('CAL1');
  objCalData            = document.getElementById('Calendar1');
  objCurrentInputObject = document.getElementById(objInput);

  if(objCurrentInputObject == null) { alert("Can't find specified input."); return; };
  if(objCal                == null) { alert("Can't find Microsoft Calendar Control."); return; };

  selx = sely = 0;
  selp = objCurrentInputObject;
  while(selp.offsetParent)
  { selp =  selp.offsetParent; 
    selx += selp.offsetLeft; 
    sely += selp.offsetTop;
  };

  ShowSelects(0);                                                       // Hide form input SELECT objects.

  // Center Calendar.
  objCal.style.left = (document.body.clientWidth  / 2) - 128;
  objCal.style.top  = (document.body.clientHeight / 2) - 93;

  // Move calendar to input position.
  objCal.style.left = selx;
  objCal.style.top  = sely - (objCurrentInputObject.clientHeight + 15);
  
  // Get the current date.
  strDate = objCurrentInputObject.value;                              

  // Use the date hint if date is blank and a hint exists.
  if((strDate == "") && (strCalendarHint != "")) { strDate = strCalendarHint; };        

  if(strDate != "")
  { iFirstSlash = strDate.indexOf("/");
    strMonth = strDate.substring(0, iFirstSlash);         
    strDate = strDate.substring(iFirstSlash + 1, strDate.length - iFirstSlash + 2);

    iFirstSlash = strDate.indexOf("/");
    strDay      = strDate.substring(0, iFirstSlash);          
    strDate = strDate.substring(iFirstSlash + 1, strDate.length - iFirstSlash + 2);
    strYear = strDate.substring(0, 4);

    if(bUseActiveXCalendar == 1)
    { objCalData.Day   = strDay;
      objCalData.Month = strMonth;
      objCalData.Year  = strYear;
    }
    else
    { document.Calendar1.location.href = "UICalendarDotNet.aspx?SET=1&Y=" + strYear + "&M=" + strMonth + "&D=" + strDay;
    };

    if(bShowTimeInCalendar == 1)
    { strTime = objCurrentInputObject.value;
      strTime = strTime.toUpperCase();
      iFirstColan = strTime.indexOf(":");
      if(iFirstColan != -1)
      { strHour = strTime.substring(iFirstColan-2, iFirstColan);
        if(strHour.charAt(0) == " ") { strHour = strHour.substring(1,2); };
        if(iFirstColan += 1)
        { strMinutes = strTime.substring(iFirstColan, iFirstColan+2);
          // alert("MIN: '" + strMinutes + "'");

          objHours = document.getElementById('CALHOURS');
          objHours.value = strHour;

          objMinutes = document.getElementById('CALMINS');
          objMinutes.value = strMinutes;
 
          idxAM = strTime.indexOf("AM");
          objAMPM = document.getElementById("CALAMPM");
          if(idxAM != -1)
          { objAMPM.value = "AM"; }
          else { objAMPM.value = "PM"; };
        };
      };
    };
  }
  else
  { var date = new Date();
	objCalData.Day   = date.getDate();
	objCalData.Month = date.getMonth() + 1;
	objCalData.Year  = date.getYear();

    if(bShowTimeInCalendar == 1)
    { objHours = document.getElementById('CALHOURS');
      objHours.value = "12";
    };
  };
  CalendarShow();                                                     // Show form input SELECT objects.
};

function CalendarHide()
{ objCal = document.getElementById('CAL1');
  objCal.style.visibility="hidden";
  ShowSelects(1);
};

function CalendarShow()
{ objCal = document.getElementById('CAL1');
  objCal.style.visibility="";
};


function CalendarSet()
{ objCal     = document.getElementById('CAL1');
  objCalData = document.getElementById('Calendar1');
  objCal.style.visibility="hidden";

  if(bUseActiveXCalendar == 1)
  { iMonth = objCalData.Month;
    iDay   = objCalData.Day;
    iYear  = objCalData.Year;
  }
  else
  { iMonth = document.Calendar1.GetMonth();
    iDay   = document.Calendar1.GetDay();
    iYear  = document.Calendar1.GetYear();
  };

  strSetValue = "";

  if(iMonth != 0)
  { strSetValue = iMonth + "/" + iDay  + "/" + iYear; 

    if(bShowTimeInCalendar == 1)
    { strSetValue += " ";
      strSetValue += document.getElementById("CALHOURS").value;
      strSetValue += ":";
      strSetValue += document.getElementById("CALMINS").value;
      strSetValue += " ";
      strSetValue += document.getElementById("CALAMPM").value;
    };

    objCurrentInputObject.value = strSetValue;
    SetCalendarHint(strSetValue);
    CalendarHide();
  }
  else 
  { alert("Please select a day from the month displayed."); 
    CalendarShow();
  };
};

function CalendarInsert()
{ bCalendarInserted = 1; 

  strHtml = ""
  strHtml += "<FORM>&nbsp;&nbsp;";

  if(bUseActiveXCalendar == 1)
  { // Use Microsoft Office ActiveX Calendar Control.
    if(bShowTimeInCalendar == 1)
    { strHtml += "<DIV ID='CAL1' style='position:absolute;left:100;top:100;width:256;height:230;visibility:visible;background:#000000;z-index:1000'>";
      strHtml += "<DIV style='position:absolute;left:3;top:3;width:250;height:183;background:white;z-index:1000'>";
    }
    else
    { strHtml += "<DIV ID='CAL1' style='position:absolute;left:100;top:100;width:256;height:195;visibility:visible;background:#000000;z-index:1000'>";
      strHtml += "<DIV style='position:absolute;left:3;top:3;width:250;height:185;background:white;z-index:1000'>";
    };

    strHtml += "<object id='Calendar1'                          \n";
    strHtml += "        classid='clsid:8E27C92B-1264-101C-8A2F-040224009C02'\n";
    strHtml += "        codebase='MSACAL70.OCX' \n";
    strHtml += "        align='baseline' \n";
    strHtml += "        border='0' width='250' height='150'>    \n";
    strHtml += "   <param name='_Version'    value='458752'>    \n";
    strHtml += "   <param name='_ExtentX'    value='9843'>      \n";
    strHtml += "   <param name='_ExtentY'    value='7373'>      \n";
    strHtml += "   <param name='_StockProps' value='1'>         \n";
    strHtml += "   <param name='BackColor'   value='16777215'>  \n";
    strHtml += "   <param name='Year'        value='2001'>      \n";
    strHtml += "   <param name='Month'       value='1'>         \n";
    strHtml += "   <param name='Day'         value='1'>         \n";
    strHtml += "   <param name='DayLength'   value='1'>         \n";
    strHtml += "   <param name='MonthLength' value='1'>         \n";
    strHtml += "   Your web browser is not ActiveX capable.<BR> \n";
    strHtml += "</object>\n";
  }
  else
  { // Use the Microsoft .NET Calendar Control.
    if(bShowTimeInCalendar == 1)
    { strHtml += "<DIV ID='CAL1' style='position:absolute;left:100;top:100;width:258;height:240;visibility:visible;background:#000000;z-index:1000'>";
      strHtml += "<DIV style='position:absolute;left:3;top:3;width:250;height:220;background:white;z-index:1000'>";
    }
    else
    { strHtml += "<DIV ID='CAL1' style='position:absolute;left:100;top:100;width:276;height:195;visibility:visible;background:#000000;z-index:1000'>";
      strHtml += "<DIV style='position:absolute;left:3;top:3;width:270;height:185;background:white;z-index:1000'>";
    };
    strHtml += "<IFRAME ID='Calendar1' \n";
    strHtml += "        Name='Calendar1' \n";
    strHtml += "        SRC='UICalendarDotNet.aspx' \n";
    strHtml += "        style='height:155px;width:250px;' \n";
    strHtml += "        SCROLLING=NO \n";
    strHtml += "        FRAMEBORDER=0 \n";
    strHtml += "></IFRAME>";
  };

  if(bShowTimeInCalendar == 1)
  { strHtml += "<STYLE>";
    strHtml += "TD.TIME { background-color:#d0d0d0;border-style:solid;border-width:1px;text-align:center; } ";
    strHtml += "</STYLE>";
    strHtml += "<CENTER>";
    strHtml += "<TABLE style='border-style:solid;border-width:1px;border-color:black;'>";
    strHtml += "<TR>";
    strHtml += "<TD CLASS='TIME'>Hour</TD>";
    strHtml += "<TD></TD>";
    strHtml += "<TD CLASS='TIME'>Min</TD>";
    strHtml += "<TD>&nbsp;</TD>";
    strHtml += "<TD CLASS='TIME'>AM/PM</TD>";
    strHtml += "<TD><BUTTON style='width:65;background:#c0c0c0' onClick='CalendarHide();'>Close</BUTTON></TD>";
    strHtml += "</TR>";
    strHtml += "<TR>";
    strHtml += "<TD>";
    strHtml += "<SELECT ID='CALHOURS' style='width:45px;'>"; 
    for(x = 1 ; x < 13 ; x++)
    { strHtml += "<OPTION VALUE='" + x + "'>" + x + "</OPTION>"; };
    strHtml += "</SELECT>"
    strHtml += "</TD>";
    strHtml += "<TD> <B>:</B> </TD>";
    strHtml += "<TD>";
    strHtml +=   "<SELECT ID='CALMINS' style='width:45px;'>"; 
    for(x = 0 ; x < 60 ; x+=iTimeRounding)
    { strHtml += "<OPTION ";
      if(x <= 9)
      { strHtml += "VALUE='0" + x + "' "
        strHtml += "ID='" + x + "' ";
        strHtml += ">0" + x + " "; 
      }
      else 
      { strHtml += "VALUE='" + x + "' ";
        strHtml += "ID='" + x + "' ";
        strHtml += ">" + x + " "; 
      }
      strHtml += "</OPTION>";
    };
    strHtml += "</SELECT>&nbsp;";
    strHtml += "</TD>";
    strHtml += "<TD>&nbsp;</TD>";
    strHtml += "<TD>";
    strHtml += "<SELECT ID='CALAMPM'><OPTION VALUE='AM'>AM</OPTION><OPTION VALUE='PM'>PM</OPTION></SELECT>";
    strHtml += "</TD>";
    strHtml += "<TD><BUTTON style='width:65;background:#c0c0c0' onClick='CalendarSet();'>Set</BUTTON></TD>";
    strHtml += "</TR>";
    strHtml += "</TABLE>";
    strHtml += "<FONT style='point-size:4px;'><BR></FONT>";
  }
  else
  {  strHtml += "<CENTER><BUTTON style='width:75;background:#c0c0c0' onClick='CalendarHide();'>Close</BUTTON>";
     strHtml += "<BUTTON style='width:75;background:#c0c0c0' onClick='CalendarSet();'>Set</BUTTON></CENTER><BR>";
  };   
  strHtml += "</DIV>";
  strHtml += "</DIV>";
  strHtml += "</FORM>";

  var aElement=document.createElement("DIV");
  aElement.innerHTML = strHtml;
  document.body.appendChild(aElement);
};


