// $Id: popCal.js,v 1.6 2004/10/15 08:00:17 administrator Exp $

// trick back button into being forward button (makes back not work)
// holy wtf. very VERY bad.
// window.history.forward(1);

// calendar support code

function formNum(fieldName) {
  for( i=0; i<document.forms.length; i++ ) {
    if( eval('document.forms[i].'+fieldName) != null ) return i;
  }
  return -1;
}

function monthString(month) {
  switch(month) {
  case 1: return "January";    case 2: return "February";    case 3: return "March";  
  case 4: return "April";      case 5: return "May";        case 6: return "June";  
  case 7: return "July";       case 8: return "August";     case 9: return "September";  
  case 10: return "October";   case 11: return "November";  case 12: return "December";
  }
}

function shortMonthString(month) { return monthString(month).substr(0,3);}

function dayOfMonth(year,month,day) { return (new Date(year,month-1,day)).getDay(); }

function daysInMonth(year,month) {
  d1 = new Date(year,month,1);
  d2month = month+1; d2year = year;
  if( month == 12 ) { d2month = 1; d2year = year+1; }
  msDiff = Date.UTC(d2year,d2month-1,1,0,0,0) - Date.UTC(year,month-1,1,0,0,0);
  dayDiff = ((msDiff/1000) / 3600) / 24;
  return dayDiff;
}

calWindow = null;
calFieldName = null;

function closePopupCalendar(year,month,day) {
  if( calWindow != null ) {
    xxxfn = formNum(calFieldName); if( xxxfn<0 ) return;
    // eval('document.forms['+xxxfn+'].'+calFieldName+'.value = "'+day+'-'+shortMonthString(month)+'-'+year+'";');
    // eval('document.forms['+xxxfn+'].'+calFieldName+'.value = "'+day+'/'+month+'/'+year+'";');
    eval('document.forms['+xxxfn+'].'+calFieldName+'.value = "'+day+'/'+month+'/'+year+'";');
    calWindow.close();
    eval('document.forms['+xxxfn+'].'+calFieldName+'.focus();');
    calWindow = null;
    calFieldName = null;
  }
}

function monthIndexByName(mn) {
  for(i=1; i<=12; i++) if( shortMonthString(i) == mn ) return i;
  return null;
}

function iconTag(iconname) {
 if (iconname == 'arrow-ll'){ return '&lt;&lt;'}
 if (iconname == 'arrow-l') { return '&lt;' }
 if (iconname == 'arrow-rr'){ return '&gt;&gt;'}
 if (iconname == 'arrow-r') { return '&gt;' }
  return null; //'<img src="../icon-'+iconname+'.gif" width=15 height=15 border=0>';
}

function openPopupCalendar(fieldname,year,month) {
  curValue=null;
  xxxfn = formNum(fieldname); if( xxxfn<0 ) return;

  var status=eval('curValue = document.forms['+xxxfn+'].'+fieldname+'.value;');

  curYear = null; curMonth = null; curDay = null;

  curFields = curValue.split('-');
  if( curFields.length == 3 ) {
    curYear = parseInt(curFields[2]); if(isNaN(curYear)) curYear = null;
    curMonth = monthIndexByName(curFields[1].toUpperCase());
    curDay = parseInt(curFields[0]); if(isNaN(curDay)) curDay = null;
  }

  todaysDay = (new Date()).getDate();
  todaysMonth = (new Date()).getMonth()+1;
  todaysYear = (new Date()).getYear(); if( todaysYear < 1900 ) todaysYear += 1900;
  day = (((year==null)&&(month==null))?(curDay==null?todaysDay:curDay):-1);
  year = (year==null?(curYear==null?todaysYear:curYear):year);
  month = (month==null?(curMonth==null?todaysMonth:curMonth):month);
  if( month < 1 ) { month = 12; year --; }
  if( month > 12 ) { month = 1; year ++; }
  calFieldName = fieldname;
 // if( (calWindow == null) || (calWindow.document == null) ) 
  calWindow = open("", 'popupCalendarWindow', 'height=220,width=200,scrollbars=no');
  if( calWindow == null ) {
    alert("ERROR: Failed to create window.");
    return;
  }
  calWindow.focus();
  calWindow.document.open();
  s='';
  s=s+'<html><head><TITLE>Calendar</TITLE>\n';
  s=s+'<style type="text/css">\n';
  s=s+'<!--\n';
  s=s+'.CalendarHeader {  font: bold 18px Arial, Helvetica, sans-serif; color: #FFFFFF; background: #4777CB}\n';
  s=s+'.LinkOnBlack {  color: #FFFFFF; text-decoration: none; font-weight: bold; font-size: 13px}\n';
  s=s+'.Days {  font: bold 10px Arial, Helvetica, sans-serif; color: #333333}\n';
  s=s+'.Dates { font: 10px Arial, Helvetica, sans-serif; color: #333333 }\n';
  s=s+'.YMonBlack { font: 13px Arial, Helvetica, sans-serif; color: #CCCCCC}\n';
  s=s+'-->\n';
  s=s+'</style>\n';
  s=s+'</HEAD>\n';
  s=s+'<BODY\n';
  s=s+'      marginwidth=0 marginheight=0 LEFTMARGIN=0 TOPMARGIN=0>\n';
  s=s+'<table width=100% height=100% border=0 cellpadding=2 cellspacing=0>\n';
  s=s+'<tr><td class="CalendarHeader">&nbsp;</td><td colspan=7 align=center class="CalendarHeader">';

  s=s+'<table width=100% border=0 cellpadding=0 cellspacing=0 class="CalendarHeader"><tr><td align=right class="YMonBlack">';
  tmp1 = '<a class="LinkOnBlack" href="javascript:opener.openPopupCalendar(\''+fieldname+'\',';

  s=s+tmp1+(year-1)+','+(month)+');">'+iconTag('arrow-ll')+'</a><br>';
  s=s+tmp1+(year)+','+(month-1)+');">'+iconTag('arrow-l')+'</a>';
  s=s+'</td><td width=100% align=center class="CalendarHeader"><font class="ClHF">'+shortMonthString(month)+' '+year+'</font></td><td align=left class="YMonBlack">';
  s=s+tmp1+(year+1)+','+(month)+');">'+iconTag('arrow-rr')+'</a><br>';
  s=s+tmp1+(year)+','+(month+1)+');">'+iconTag('arrow-r')+'</a>';
  
  s=s+'</td></tr></table>\n';


  s=s+'</td><td class="CalendarHeader">&nbsp;&nbsp;</td></tr>\n';
  s=s+'<tr><td>&nbsp;</td>';
  s=s+'<td align=right class="Days">Su</td><td align=right class="Days">Mo</td>';
  s=s+'<td align=right class="Days">Tu</td><td align=right class="Days">We</td>';
  s=s+'<td align=right class="Days">Th</td><td align=right class="Days">Fr</td>';
  s=s+'<td align=right class="Days">Sa</td><td>&nbsp;</td></tr>\n';
  days = daysInMonth(year,month);
  dom = -dayOfMonth(year,month,1) + 1;
  for(row=0; row<6; row++) {
    s=s+'<tr><td>&nbsp;</td>';
    for(col=0; col<7; col++) {
      if( (dom < 1) || (dom > days) ) {
        s=s+'<td>&nbsp;</td>';
      } else {
        if( day == dom ) {
          s=s+'<td align=right class="Dates"><a href="javascript:opener.closePopupCalendar('+year+','+month+','+dom+');">';
	  s=s+'<font class="ClSF">'+dom+'</font></a></td>';
        } else {
          s=s+'<td align=right class="Dates"><a href="javascript:opener.closePopupCalendar('+year+','+month+','+dom+');">';
          s=s+dom+'</a></td>';
        }
      }
      dom ++;
    }
    s=s+'<td>&nbsp;</td></tr>\n';
  }
  s=s+'</tr></table>\n';
  calWindow.document.write(s);
  calWindow.document.close();
}

function openPopupLov(p_href) {
  calWindow = open(p_href,'popupLovWindow', 'height=400,width=400,scrollbars=yes,resizable=yes');
  calWindow.focus();
}


function screenSize(){
   var correctwidth = screen.width;
   //var correctheight = screen.height;
return correctWidth - 66;
}
