var fixedX = -1; 		   // x position (-1 if to appear below control)
var fixedY = -1; 		   // y position (-1 if to appear below control)
var startAt = 0; 		   // 0 - sunday ; 1 - monday
var showWeekNumber = 0;    // 0 - don't show; 1 - show
var showToday = 1; 	   // 0 - don't show; 1 - show

//style colors for calendar/img
var titleBarBG = "#000099";
var selectOverColor = "#DDDDDD";
var selectColor = "#ECECEC";
var todayBarBG = "#ECECEC";

var imgTitleBar = "#C0C0C0";
var infoBarBG = "#ECECEC";

function dwr(s) { document.write(s); } dwr('<style type="text/css">.vlkcln{font-size:8.5pt;font-family:Arial,Helvetica,sans-serif}</style>');

//starts inserting dynamic text for different languages
var gotoStr = "Go To Current Month";
var todayStr = "Today is";
var weekStr = "Wk";
var scrollLeftMsg = "Click to scroll to previous month. Hold mouse button to scroll automatically.";
var scrollRightMsg = "Click to scroll to next month. Hold mouse button to scroll automatically.";
var selectMonthMsg = "Click to select a month.";
var selectYearMsg = "Click to select a year.";
var selectDateMsgStart = "Select";
var selectDateMsgEnd = "as date.";
var selectDateMsg = selectDateMsgStart + " " + "[date]" + " " + selectDateMsgEnd; //!!!!! do not replace [date], it will be replaced by date.
//ends inserting dynamic text for different languages

var oCln, crossMonthObj, crossYearObj, monthSelected, yearSelected, dateSelected, omonthSelected, oyearSelected, odateSelected, monthConstructed, yearConstructed, intervalID1, intervalID2, timeoutID1, timeoutID2, ctlToPlaceValue, rdrStr = "", ctlNow, dateFormat, nStartingYear;

var bPageLoaded = false;
var ie = document.all;
var dom = document.getElementById;

var ns4 = document.layers;
var today = new Date();
var dateNow = today.getDate();
var monthNow = today.getMonth();
var yearNow = today.getYear();

var miD1 = "http://newca.com/img/cln/drop1.gif";
var miD2 = "http://newca.com/img/cln/drop2.gif";
var miL1 = "http://newca.com/img/cln/left1.gif";
var miL2 = "http://newca.com/img/cln/left2.gif";
var miR1 = "http://newca.com/img/cln/right1.gif";
var miR2 = "http://newca.com/img/cln/right2.gif";
var miDv = "http://newca.com/img/cln/divider.gif";
var miCls = "http://newca.com/img/cln/cls.gif";

var imgsrc = new Array(miD1, miD2, miL1, miL2, miR1, miR2);
var img = new Array();
var bShowCln = false;
var bShowImg = false;

var obj;
/* hides <select> and <applet> objects (for IE only) */
function hideElement(elmID, overDiv) {
  if (ie) {
    var ar = document.all.tags(elmID);
    for (var i = 0; i < ar.length; i++) {
      obj = ar[i];
      if (!obj || !obj.offsetParent) { continue; }

      // Find the element's offsetTop and offsetLeft relative to the body tag.
      objLeft = obj.offsetLeft;
      objTop = obj.offsetTop;
      objParent = obj.offsetParent;

      try {
        while (objParent.tagName.toUpperCase() != "body") {
          objLeft += objParent.offsetLeft;
          objTop += objParent.offsetTop;
          objParent = objParent.offsetParent;
        }
      }
      catch (e) { }

      objHeight = obj.offsetHeight;
      objWidth = obj.offsetWidth;
      var overSzLW = overDiv.offsetLeft + overDiv.offsetWidth;
      var overSzTH = overDiv.offsetTop + overDiv.offsetHeight;
      if ((overSzLW) <= objLeft);
      else if ((overSzTH) <= objTop);
      else if (overDiv.offsetTop >= (objTop + objHeight));
      else if (overDiv.offsetLeft >= (objLeft + objWidth));
      else { obj.style.visibility = "hidden"; }
    }
  }
}

function showElement(elmID) {
  if (ie) {
    var ar = document.all.tags(elmID);
    if (ar != null) {
      for (var i = 0; i < ar.length; i++) {
        obj = ar[i];

        if (!obj || !obj.offsetParent) { continue; }
        obj.style.visibility = "";
      }
    }
  }
}

function HolidayRec(d, m, y, desc) { this.d = d; this.m = m; this.y = y; this.desc = desc; }

var HolidaysCounter = 0;
var Holidays = new Array();

function addHoliday(d, m, y, desc) { Holidays[HolidaysCounter++] = new HolidayRec(d, m, y, desc); }

if (dom) {
  /*for (var i = 0; i < imgsrc.length; i++)	{img[i] = new Image(); img[i].src = imgsrc[i];}*/
  dwr("<div class='vlkcln' onclick='bShowCln=true' id='calendar' style='z-index:+899;position:absolute;visibility:hidden;'>");
  dwr("<table class='vlkcln' width=" + ((showWeekNumber == 1) ? 250 : 220) + " style='border:solid 1px dimgray;background-color:#ffffff;'>");
  dwr("<tr bgcolor='" + titleBarBG + "'><td class='vlkcln'>");
  dwr("<table class='vlkcln' width='" + ((showWeekNumber == 1) ? 248 : 218) + "'>");
  dwr("<tr><td class='vlkcln' style='padding:1px'><b style='color:#ffffff'><span id='caption' class='vlkcln'></span></b></td>");
  dwr("<td class='vlkcln' align='right' title='Close the Calendar' width='16'>");
  dwr("<a href='javascript:hideCalendar();'>");
  dwr("<img src='" + miCls + "' style='width:14px;height:14px;border:solid 1px #3366FF;margin:1px;' alt='Close the Calendar' onmouseover='this.style.borderColor=\"#88AAFF\";' onmouseout='this.style.borderColor=\"#3366FF\";' /></a>");
  dwr("</td></tr></table></td></tr>");
  dwr("<tr><td class='vlkcln' style='padding:5px' bgcolor='#ffffff'><span class='vlkcln' id='content'></span></td></tr>");

  if (showToday == 1) { dwr("<tr bgcolor='" + todayBarBG + "'><td class='vlkcln' style='padding:1px' align=center><span class='vlkcln' id='lblToday'></span></td></tr>"); }

  dwr("</table></div><div class='vlkcln' id='selectMonth' style='z-index:+899;position:absolute;visibility:hidden;'></div>");
  dwr("<div class='vlkcln' id='selectYear' style='z-index:+999;position:absolute;visibility:hidden;'></div>");

  //Img
  dwr("<div class='vlkcln' onclick='bShowImg=true' id='popImg' style='z-index:+999;position:absolute;visibility:hidden;'>");
  dwr("<table cellspacing='3' cellpadding='3' class='vlkcln' style='width:275px;border:1px solid dimgray;background-color:#ffffff'>");
  dwr("<tr bgcolor='" + imgTitleBar + "'><td class='vlkcln'>");
  dwr("<table cellspacing='1' cellpadding='1' class='vlkcln' style='width:100%'>");
  dwr("<tr>");
  dwr("<td class='vlkcln' style='padding:2px'><font color='#ffffff'><b><span id='captionImg' class='vlkcln'></span></b></font></td>");
  dwr("<td align='center' style='width:16px'><a href='javascript:hideDlg();'><img src='" + miCls + "' width='14' height='14' border='0' alt='Close the Image Viewer' /></a></td></tr></table>");
  dwr("</td></tr>");
  dwr("<tr><td class='vlkcln' style='padding:3px' bgcolor='#ffffff'><span class='vlkcln' id='contentImgView'></span></td></tr>");
  dwr("<tr bgcolor='" + infoBarBG + "'><td class='vlkcln' style='padding:1px' align='center'><span class='vlkcln' id='lblImgInfo'></span></td></tr>");
  dwr("</table></div>");
}

//starts inserting month and days of week names dynamic for different languages
var delimChar = "|";
//var monthNamesStr defined in Template_Top.jsp and assined value from ApplicationRecources.properties file for different languages
if (!monthNamesStr) { var monthNamesStr = "January|February|March|April|May|June|July|August|September|October|November|December"; }
var monthName = monthNamesStr.split(delimChar);

var monthShortNamesStr = "Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec";
var monthShortName = monthShortNamesStr.split(delimChar);

//var daysOfWeekStr defined in Template_Top.jsp and assined value from ApplicationRecources.properties file for different languages
if (!daysOfWeekStr) { var daysOfWeekStr = "Sun|Mon|Tue|Wed|Thu|Fri|Sat"; }
var dayName;

if (startAt == 0) { dayName = daysOfWeekStr.split(delimChar); /*dayName = new Array("Sun","Mon","Tue","Wed","Thu","Fri","Sat");*/ }
else { dayName = new Array("Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"); }
//ends inserting month and days of week names dynamic for different languages

var styleAnchor = "text-decoration:none;color:black;"
var styleLightBorder = "border:solid 1px dimgray;"

function swapImage(srcImg, destImg) { if (ie) { document.getElementById(srcImg).setAttribute("src", destImg); } }

function hideDlg() {
  crossobj.visibility = "hidden";
  showElement('appletimg');
}
function hideCalendar() {
  oCln.visibility = "hidden";
  if (crossMonthObj != null) { crossMonthObj.visibility = "hidden"; }
  if (crossYearObj != null) { crossYearObj.visibility = "hidden"; }

  showElement('select');
  showElement('applet');
}

function init() {
  if (!ns4) {
    if (!ie) { yearNow += 1900; }

    oCln = (dom) ? document.getElementById("calendar").style : ie ? document.all.calendar : document.calendar;
    hideCalendar();
    crossMonthObj = (dom) ? document.getElementById("selectMonth").style : ie ? document.all.selectMonth : document.selectMonth;
    crossYearObj = (dom) ? document.getElementById("selectYear").style : ie ? document.all.selectYear : document.selectYear;
    monthConstructed = false;
    yearConstructed = false;

    if (showToday == 1) { document.getElementById("lblToday").innerHTML = todayStr + " <a onmousemove='window.status=\"" + gotoStr + "\"' onmouseout='window.status=\"\"' title='" + gotoStr + "' style='" + styleAnchor + "' href='javascript:monthSelected=monthNow;yearSelected=yearNow;buildCalendar();'>" + dayName[(today.getDay() - startAt == -1) ? 6 : (today.getDay() - startAt)] + ", " + dateNow + " " + monthName[monthNow].substring(0, 3) + " " + yearNow + "</a>"; }

    sHTML1 = "<nobr><span id='spanLeft'	style='border-style:solid;border-width:1;border-color:#3366FF;cursor:pointer' onmouseover='swapImage(\"changeLeft\",miL2);this.style.borderColor=\"#88AAFF\";window.status=\"" + scrollLeftMsg + "\"' onclick='javascript:decMonth()' onmouseout='clearInterval(intervalID1);swapImage(\"changeLeft\",miL1);this.style.borderColor=\"#3366FF\";window.status=\"\"' onmousedown='clearTimeout(timeoutID1);timeoutID1=setTimeout(\"StartDecMonth()\",500)'	onmouseup='clearTimeout(timeoutID1);clearInterval(intervalID1)'>&nbsp<IMG id='changeLeft' SRC='" + miL1 + "' width=10 height=11 BORDER=0>&nbsp</span>&nbsp;";
    sHTML1 += "<span id='spanRight' style='border-style:solid;border-width:1;border-color:#3366FF;cursor:pointer'	onmouseover='swapImage(\"changeRight\",miR2);this.style.borderColor=\"#88AAFF\";window.status=\"" + scrollRightMsg + "\"' onmouseout='clearInterval(intervalID1);swapImage(\"changeRight\",miR1);this.style.borderColor=\"#3366FF\";window.status=\"\"' onclick='incMonth()' onmousedown='clearTimeout(timeoutID1);timeoutID1=setTimeout(\"StartIncMonth()\",500)'	onmouseup='clearTimeout(timeoutID1);clearInterval(intervalID1)'>&nbsp<IMG id='changeRight' SRC='" + miR1 + "'	width=10 height=11 BORDER=0>&nbsp</span>&nbsp";
    sHTML1 += "<span id='spanMonth' style='border-style:solid;border-width:1;border-color:#3366FF;cursor:pointer'	onmouseover='swapImage(\"changeMonth\",miD2);this.style.borderColor=\"#88AAFF\";window.status=\"" + selectMonthMsg + "\"' onmouseout='swapImage(\"changeMonth\",miD1);this.style.borderColor=\"#3366FF\";window.status=\"\"' onclick='popUpMonth()'></span>&nbsp;";
    sHTML1 += "<span id='spanYear' style='border-style:solid;border-width:1;border-color:#3366FF;cursor:pointer' onmouseover='swapImage(\"changeYear\",miD2);this.style.borderColor=\"#88AAFF\";window.status=\"" + selectYearMsg + "\"'	onmouseout='swapImage(\"changeYear\",miD1);this.style.borderColor=\"#3366FF\";window.status=\"\"'	onclick='popUpYear()'></span>&nbsp;</nobr>";

    document.getElementById("caption").innerHTML = sHTML1;

    //Img		
    crossobj = (dom) ? document.getElementById("popImg").style : ie ? document.all.popImg : document.popImg;
    hideDlg();
    document.getElementById("captionImg").innerHTML = " Image Viewer ";

    bPageLoaded = true;
  }
}

function padZero(num) { return (num < 10) ? '0' + num : num; }

function constructDate(d, m, y) {
  var sTmp = new String(dateFormat);
  sTmp = sTmp.replace("dd", "<e>");
  sTmp = sTmp.replace("d", "<d>");
  sTmp = sTmp.replace("<e>", padZero(d));
  sTmp = sTmp.replace("<d>", d);
  sTmp = sTmp.replace("mmm", "<o>");
  sTmp = sTmp.replace("mm", "<n>");
  sTmp = sTmp.replace("m", "<m>");
  sTmp = sTmp.replace("<m>", m + 1);
  sTmp = sTmp.replace("<n>", padZero(m + 1));
  sTmp = sTmp.replace("<o>", monthShortName[m]);
  return sTmp.replace("yyyy", y);
}

function closeCalendar() {
  hideCalendar();
  if (rdrStr != "") {
    var s = rdrStr + constructDate(dateSelected, monthSelected, yearSelected);
    if (ie) { window.location.href = s; }
    else { document.location.href = s; }
  }
}

/*** Month Pulldown	***/
function StartDecMonth() { intervalID1 = setInterval("decMonth()", 80); }
function StartIncMonth() { intervalID1 = setInterval("incMonth()", 80); }
function incMonth() { monthSelected++; if (monthSelected > 11) { monthSelected = 0; yearSelected++; } buildCalendar(); }
function decMonth() { monthSelected--; if (monthSelected < 0) { monthSelected = 11; yearSelected--; } buildCalendar(); }

function constructMonth() {
  popDownYear();
  if (!monthConstructed) {
    sHTML = "";
    for (var i = 0; i < 12; i++) {
      sName = monthName[i];
      if (i == monthSelected) {
        sName = "<b class='vlkcln'>" + sName + "</b>";
      }
      sHTML += "<tr><td class='vlkcln' id='m" + i + "' onmouseover='this.style.backgroundColor=\"" + selectOverColor + "\"' onmouseout='this.style.backgroundColor=\"\"' style='cursor:pointer' onclick='monthConstructed=false;monthSelected=" + i + ";buildCalendar();popDownMonth();event.cancelBubble=true'>&nbsp;" + sName + "&nbsp;</td></tr>";
    }
    document.getElementById("selectMonth").innerHTML = "<table class='vlkcln' width='70' style='border:solid 1px dimgray;' bgcolor='" + selectColor + "' cellspacing=0 onmouseover='clearTimeout(timeoutID1)' onmouseout='clearTimeout(timeoutID1);timeoutID1=setTimeout(\"popDownMonth()\",100);event.cancelBubble=true'>" + sHTML + "</table>";
    monthConstructed = true;
  }
}

function popUpMonth() {
  constructMonth();
  crossMonthObj.visibility = (dom || ie) ? "visible" : "show";
  crossMonthObj.left = parseInt(oCln.left) + 50 + "px";
  crossMonthObj.top = parseInt(oCln.top) + 26 + "px";

  hideElement('select', document.getElementById("selectMonth"));
  hideElement('applet', document.getElementById("selectMonth"));
}

function popDownMonth() { crossMonthObj.visibility = "hidden"; }

/*** Year Pulldown ***/
function incYear() {
  for (var i = 0; i < 7; i++) {
    newYear = (i + nStartingYear) + 1;
    if (newYear == yearSelected) { txtYear = "&nbsp;<b>" + newYear + "</b>&nbsp;" }
    else { txtYear = "&nbsp;" + newYear + "&nbsp;" }
    document.getElementById("y" + i).innerHTML = txtYear;
  }
  nStartingYear++;
  bShowCln = true;
}

function decYear() {
  for (var i = 0; i < 7; i++) {
    newYear = (i + nStartingYear) - 1;
    if (newYear == yearSelected) { txtYear = "&nbsp;<B>" + newYear + "</B>&nbsp;" }
    else { txtYear = "&nbsp;" + newYear + "&nbsp;" }
    document.getElementById("y" + i).innerHTML = txtYear;
  }
  nStartingYear--;
  bShowCln = true;
}

function selectYear(nYear) {
  yearSelected = parseInt(nYear + nStartingYear);
  yearConstructed = false;
  buildCalendar();
  popDownYear();
}

function constructYear() {
  popDownMonth();
  sHTML = "";
  if (!yearConstructed) //<table style='border:solid 1px red'>
  {
    sHTML = "<tr><td class='vlkcln' align='center' onmouseover='this.style.backgroundColor=\"" + selectOverColor + "\"' onmouseout='clearInterval(intervalID1);this.style.backgroundColor=\"\"' style='cursor:pointer' onmousedown='clearInterval(intervalID1);intervalID1=setInterval(\"decYear()\",30)' onmouseup='clearInterval(intervalID1)'>-</td></tr>";
    j = 0;
    nStartingYear = yearSelected - 3;
    for (i = (yearSelected - 3); i <= (yearSelected + 3); i++) {
      sName = i;
      if (i == yearSelected) {
        sName = "<b>" + sName + "</b>";
      }

      sHTML += "<tr><td class='vlkcln' id='y" + j + "' onmouseover='this.style.backgroundColor=\"" + selectOverColor + "\"' onmouseout='this.style.backgroundColor=\"\"' style='cursor:pointer' onclick='selectYear(" + j + ");event.cancelBubble=true'>&nbsp;" + sName + "&nbsp;</td></tr>";
      j++;
    }

    sHTML += "<tr><td class='vlkcln' align='center' onmouseover='this.style.backgroundColor=\"" + selectOverColor + "\"' onmouseout='clearInterval(intervalID2);this.style.backgroundColor=\"\"' style='cursor:pointer' onmousedown='clearInterval(intervalID2);intervalID2=setInterval(\"incYear()\",30)'	onmouseup='clearInterval(intervalID2)'>+</td></tr>";
    document.getElementById("selectYear").innerHTML = "<table class='vlkcln' width='44' style='border:solid 1px dimgray;' bgcolor='" + selectColor + "' onmouseover='clearTimeout(timeoutID2)' onmouseout='clearTimeout(timeoutID2);timeoutID2=setTimeout(\"popDownYear()\",100)' cellspacing='0'>" + sHTML + "</table>";
    yearConstructed = true;
  }
}

function popDownYear() {
  clearInterval(intervalID1);
  clearTimeout(timeoutID1);
  clearInterval(intervalID2);
  clearTimeout(timeoutID2);
  crossYearObj.visibility = "hidden";
}

function popUpYear() {
  var leftOffset;
  constructYear();
  crossYearObj.visibility = (dom || ie) ? "visible" : "show";
  leftOffset = parseInt(oCln.left) + document.getElementById("spanYear").offsetLeft;
  if (ie) { leftOffset += 6; }
  crossYearObj.left = leftOffset + "px";
  crossYearObj.top = parseInt(oCln.top) + 26 + "px";
}

/*** calendar ***/
function WeekNbr(n) {
  year = n.getFullYear();
  month = n.getMonth() + 1;
  if (startAt == 0) { day = n.getDate() + 1; }
  else { day = n.getDate(); }

  a = Math.floor((14 - month) / 12);
  y = year + 4800 - a;
  m = month + 12 * a - 3;
  b = Math.floor(y / 4) - Math.floor(y / 100) + Math.floor(y / 400);
  J = day + Math.floor((153 * m + 2) / 5) + 365 * y + b - 32045;
  d4 = (((J + 31741 - (J % 7)) % 146097) % 36524) % 1461;
  L = Math.floor(d4 / 1460);
  d1 = ((d4 - L) % 365) + L;
  week = Math.floor(d1 / 7) + 1;
  return week;
}

function buildCalendar() {
  var aNumDays = Array(31, 0, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);

  var dateMsg;
  var startDate = new Date(yearSelected, monthSelected, 1);
  var endDate;

  if (monthSelected == 1) {
    endDate = new Date(yearSelected, monthSelected + 1, 1);
    endDate = new Date(endDate - (24 * 60 * 60 * 1000));
    numDaysInMonth = endDate.getDate();
  }
  else {
    numDaysInMonth = aNumDays[monthSelected];
  }

  datePointer = 0;
  dayPointer = startDate.getDay() - startAt;

  if (dayPointer < 0) { dayPointer = 6; }

  sHTML = "<table	class='vlkcln' border='0' style='font-family:verdana;font-size:9pt;'><tr>";

  if (showWeekNumber == 1) {
    sHTML += "<td width=27><b>" + weekStr + "</b></td><td class='vlkcln' width='1' rowspan='7' bgcolor='#d0d0d0' style='padding:0px'><img src='" + miDv + "' width=\"1\"></td>";
  }

  for (var i = 0; i < 7; i++) { sHTML += "<td class='vlkcln' width='27' align='right'><b class='vlkcln'>" + dayName[i] + "</b></td>"; }
  sHTML += "</tr><tr>";

  if (showWeekNumber == 1) {
    sHTML += "<td class='vlkcln' align='right'>" + WeekNbr(startDate) + "&nbsp;</td>";
  }

  for (var i = 1; i <= dayPointer; i++) {
    sHTML += "<td class='vlkcln'>&nbsp;</td>";
  }

  for (datePointer = 1; datePointer <= numDaysInMonth; datePointer++) {
    dayPointer++;
    sHTML += "<td class='vlkcln' align='right'>"
    sStyle = styleAnchor
    if ((datePointer == odateSelected) && (monthSelected == omonthSelected) && (yearSelected == oyearSelected))
    { sStyle += styleLightBorder }

    sHint = "";
    for (k = 0; k < HolidaysCounter; k++) {
      if ((parseInt(Holidays[k].d) == datePointer) && (parseInt(Holidays[k].m) == (monthSelected + 1))) {
        if ((parseInt(Holidays[k].y) == 0) || ((parseInt(Holidays[k].y) == yearSelected) && (parseInt(Holidays[k].y) != 0))) {
          sStyle += "background-color:#ffdddd;"
          sHint += sHint == "" ? Holidays[k].desc : "\n" + Holidays[k].desc;
        }
      }
    }

    var regexp = /\"/g;
    sHint = sHint.replace(regexp, "&quot;");

    dateMsg = "onmousemove='window.status=\"" + selectDateMsg.replace("[date]", constructDate(datePointer, monthSelected, yearSelected)) + "\"' onmouseout='window.status=\"\"' ";

    if ((datePointer == dateNow) && (monthSelected == monthNow) && (yearSelected == yearNow))
    { sHTML += "<b><a " + dateMsg + " title=\"" + sHint + "\" style='" + sStyle + "' href='javascript:dateSelected=" + datePointer + ";closeCalendar();'><font color='#ff0000'>&nbsp;" + datePointer + "</font>&nbsp;</a></b>"; }
    else if (dayPointer % 7 == (startAt * -1) + 1)
    { sHTML += "<a " + dateMsg + " title=\"" + sHint + "\" style='" + sStyle + "' href='javascript:dateSelected=" + datePointer + ";closeCalendar();'>&nbsp;<font color='#909090'>" + datePointer + "</font>&nbsp;</a>"; }
    else
    { sHTML += "<a " + dateMsg + " title=\"" + sHint + "\" style='" + sStyle + "' href='javascript:dateSelected=" + datePointer + ";closeCalendar();'>&nbsp;" + datePointer + "&nbsp;</a>"; }

    sHTML += "";
    if ((dayPointer + startAt) % 7 == startAt) {
      sHTML += "</tr><tr>";
      if ((showWeekNumber == 1) && (datePointer < numDaysInMonth)) {
        sHTML += "<td class='vlkcln' align='right'>" + (WeekNbr(new Date(yearSelected, monthSelected, datePointer + 1))) + "&nbsp;</td>";
      }
    }
  }

  document.getElementById("content").innerHTML = sHTML;
  document.getElementById("spanMonth").innerHTML = "&nbsp;" + monthName[monthSelected] + "&nbsp;<img id='changeMonth' src='" + miD1 + "' width='12' height='10' border='0' />";
  document.getElementById("spanYear").innerHTML = "&nbsp;" + yearSelected + "&nbsp;<img id='changeYear' src='" + miD1 + "' width='12' height='10' border='0' />";
}

function popUpCalendar(ctl, ctl2, format) {
  var lPos = 0, tPos = -130;
  if (bPageLoaded) {
    if (oCln.visibility == "hidden") {
      ctlToPlaceValue = ctl2;
      dateFormat = format;

      formatChar = " ";
      aFormat = dateFormat.split(formatChar);
      if (aFormat.length < 3) {
        formatChar = "/";
        aFormat = dateFormat.split(formatChar);
        if (aFormat.length < 3) {
          formatChar = ".";
          aFormat = dateFormat.split(formatChar);
          if (aFormat.length < 3) {
            formatChar = "-";
            aFormat = dateFormat.split(formatChar);
            if (aFormat.length < 3) {
              // invalid date	format
              formatChar = "";
            }
          }
        }
      }

      tokensChanged = 0;
      if (formatChar != "") {
        // use user's date
        aData = ctl2.value.split(formatChar);

        for (var i = 0; i < 3; i++) {
          if ((aFormat[i] == "d") || (aFormat[i] == "dd")) {
            dateSelected = parseInt(aData[i], 10);
            tokensChanged++;
          }
          else if ((aFormat[i] == "m") || (aFormat[i] == "mm")) {
            monthSelected = parseInt(aData[i], 10) - 1;
            tokensChanged++;
          }
          else if (aFormat[i] == "yyyy") {
            yearSelected = parseInt(aData[i], 10);
            tokensChanged++;
          }
          else if (aFormat[i] == "mmm") {
            for (j = 0; j < 12; j++) {
              if (aData[i] == monthShortName[j]) {
                monthSelected = j;
                tokensChanged++;
              }
            }
          }
        }
      }

      if ((tokensChanged != 3) || isNaN(dateSelected) || isNaN(monthSelected) || isNaN(yearSelected)) {
        dateSelected = dateNow;
        monthSelected = monthNow;
        yearSelected = yearNow;
      }

      odateSelected = dateSelected;
      omonthSelected = monthSelected;
      oyearSelected = yearSelected;

      aTag = ctl;
      try {
        do {
          aTag = aTag.offsetParent;
          lPos += aTag.offsetLeft;
          tPos += aTag.offsetTop;
        } while (aTag.tagName != "body");
      }
      catch (e) { }

      oCln.left = (fixedX == -1 ? ctl.offsetLeft + lPos : fixedX) + "px";
      oCln.top = (fixedY == -1 ? ctl.offsetTop + tPos + ctl.offsetHeight + 2 : fixedY) + "px";

      buildCalendar(1, monthSelected, yearSelected);
      oCln.visibility = (dom || ie) ? "visible" : "show";

      hideElement('select', document.getElementById("calendar"));
      hideElement('applet', document.getElementById("calendar"));

      bShowCln = true;
    }
    else {
      hideCalendar();
      if (ctlNow != ctl) { popUpCalendar(ctl, ctl2, format); }
    }
    ctlNow = ctl;
  }
}

function buildView(img, wi, hi) {
  var stl = "style=border:0px;";
  if (wi != "undefined" && hi != "undefined" && wi != "" && hi != "" && wi != "0" && hi != "0")
  { stl += "width:" + wi + "px;height:" + hi + "px;" }
  sHTML = "<table	class='vlkcln' border='0' style='font-family:verdana;font-size:10px;'><tr>";
  sHTML += "<td width='100%'><img src='" + img + "' " + stl + "/></td></tr></table>";
  document.getElementById("contentImgView").innerHTML = sHTML;
}

function popUpImg(ctl, img, txt, wi, hi) {
  txt = new String(txt);
  if (txt == "undefined") msTxt = img;
  else msTxt = txt;
  document.getElementById("lblImgInfo").innerHTML = msTxt;

  var lPos = 24, tPos = -110, topcorr = 0;
  if (bPageLoaded) {
    if (crossobj.visibility == "hidden") {
      var aTag = ctl;
      try {
        do {
          aTag = aTag.offsetParent;
          lPos += aTag.offsetLeft;
          tPos += aTag.offsetTop;
        } while (aTag.tagName != "body");
      }
      catch (e) { }

      //alert(ctl.offsetLeft+":"+ctl.offsetTop);
      //alert(ctl.offsetTop);
      //alert(document.body.offsetHeight+":"+ctl.offsetTop+":"+ctl.offsetHeight);

      if (ctl.offsetTop < 100) topcorr = 100;
      else if (ctl.offsetTop > document.body.offsetHeight - 190) topcorr = ctl.offsetTop - document.body.offsetHeight + 30;
      else topcorr = 0;

      crossobj.left = (fixedX == -1) ? (ctl.offsetLeft + lPos) : (fixedX);
      var objTop = (fixedY == -1) ? (ctl.offsetTop + tPos + topcorr) : (fixedY);
      var crr = document.body.offsetHeight - objTop;
      /*
      if(crr<200){crossobj.top=objTop+crr-200;}
      else */
      crossobj.top = objTop;

      buildView(img, wi, hi);
      crossobj.visibility = (dom || ie) ? "visible" : "show";
      hideElement('appletimg', document.getElementById("popImg"));

      bShowImg = true;
    }
    else {
      hideDlg();
      if (ctlNow != ctl) { popUpImg(ctl, img, msTxt); }
    }
    ctlNow = ctl;
  }
}

// img_ctrl, thisDoc, CL_Param, DateFormat, txt_ctrl
// new: onclick="popUpCln(this, 'frm_evn_upd.asp', 'dt', 'yyyymmdd')" 
function popUpCln(ctl, thisDoc, CL_Param, format) {
  var lPos = 10, tPos = -10;
  if (bPageLoaded) {
    if (oCln.visibility == "hidden") {
      //ctlToPlaceValue	= ctl2;
      dateFormat = format;

      formatChar = " ";
      aFormat = dateFormat.split(formatChar);
      if (aFormat.length < 3) {
        formatChar = "/";
        aFormat = dateFormat.split(formatChar);
        if (aFormat.length < 3) {
          formatChar = ".";
          aFormat = dateFormat.split(formatChar);
          if (aFormat.length < 3) {
            formatChar = "-";
            aFormat = dateFormat.split(formatChar);
            if (aFormat.length < 3) {
              formatChar = ""; // invalid date	format
            }
          }
        }
      }

      tokensChanged = 0;

      if ((tokensChanged != 3) || isNaN(dateSelected) || isNaN(monthSelected) || isNaN(yearSelected)) {
        dateSelected = dateNow;
        monthSelected = monthNow;
        yearSelected = yearNow;
      }
      odateSelected = dateSelected;
      omonthSelected = monthSelected;
      oyearSelected = yearSelected;

      var aTag = ctl;
      try {
        do {
          aTag = aTag.offsetParent;
          //alert(9 + ":" + aTag.id);
          if (aTag != null) {
            lPos += aTag.offsetLeft;
            tPos += aTag.offsetTop;
          }
          else break;
        }
        while (aTag.tagName != "body");
      }
      catch (e) { }

      oCln.left = (fixedX == -1 ? ctl.offsetLeft + lPos : fixedX) + "px";
      oCln.top = (fixedY == -1 ? ctl.offsetTop + tPos + ctl.offsetHeight + 2 : fixedY) + "px";

      buildCalendar(1, monthSelected, yearSelected);
      oCln.visibility = (dom || ie) ? "visible" : "show";

      hideElement('select', document.getElementById("calendar"));
      hideElement('applet', document.getElementById("calendar"));

      //rdrStr = thisDoc+"?"+CL_Param+"=";
      rdrStr = thisDoc + CL_Param;
      bShowCln = true;
    }
    else {
      hideCalendar();
      if (ctlNow != ctl) { popUpCln(ctl, thisDoc, CL_Param, format); }
    }
    ctlNow = ctl;
  }
}

document.onkeypress = function hideOnPress() { if (event.keyCode == 27) { hideCalendar(); hideDlg(); } }
document.onclick = function hideOnClick() {
  if (!bShowCln) hideCalendar();
  if (!bShowImg) hideDlg();

  bShowCln = false; bShowImg = false;
}

if (ie) { init(); }
else { window.onload = init; }

/* =======================================================================================
Usage: <script type="text/javascript" language="javascript" src="/_js/popWnd.js"></script>
--------------
//img_ctrl, txt_ctrl, DateFormat
old: onclick="popUpCalendar(this, document.all['dtef'], 'mm/dd/yyyy')"

//img_ctrl, thisDoc, CL_Param, DateFormat
new: onclick="popUpCln(this, 'frm_evn_upd.asp', '?dt=', 'yyyymmdd')" 
======================================================================================= */
