
var countrygroups = '';

var lastday = 31;
var lastmonth = 12;
var lastyear = 9999;

var d = new Date();
var thisday = d.getDate();
var thismonth = d.getMonth()+1;
var thisyear = d.getYear();

function fb_input_init()
{

 updateCalendar( 0);
 updateCalendar( 1);
 initializeObjects();

}

function calendar_fb( selday, month, year, range, seg)
{

 var ret = '';

 var time = new Date( year, month-1, 1);
 var start = time.getDay();
 var stop = 31;


 if( year < 999) year += 1900;
 if( thisyear < 999) thisyear += 1900;

 if( start > 0) {
 start--;
 } else {
 start = 6;
 }

 stop = maxday( month, year);

 if( selday > stop){
 selday = stop;
 document.getElementsByName( 'day' + seg)[0].selectedIndex = selday - 1;
 }

 var newMonthPrev = month - 1;
 var newYearPrev = year;
 var newMonthNext = month + 1;
 var newYearNext = year;

 if( newMonthPrev < 1 && newYearPrev > thisyear){
 newMonthPrev = 12;
 newYearPrev--;
 }
 if( newMonthNext > 12 && thisyear == newYearNext){
 newMonthNext = 1;
 newYearNext++;
 }
 if( newMonthPrev < thismonth && newYearPrev == thisyear){
 newMonthPrev++;
 newYearPrev++;
 }

 var monthName = new Array("Decembrie","Ianuarie","Februarie","Martie","Aprilie","Mai","Iunie","Iulie","August","Septembrie","Octombrie","Noiembrie","Decembrie");

 ret += '<td valign="top" nowrap="" align="left" class="fixed">';
 ret += '<div id="depDate">';
 ret += '<table cellspacing="0" cellpadding="1" border="0" style="margin-top:4px">';
 ret += '<tbody>';
 ret += '<tr>';
 ret += '<td width="20" height="20" bgcolor="#303f66" align="center" style="border: 1px solid #cccccc; color: #ffffff;"><b>Lu</b></td>';
 ret += '<td width="20" height="20" bgcolor="#303f66" align="center" style="border: 1px solid #cccccc; color: #ffffff;"><b>Ma</b></td>';
 ret += '<td width="20" height="20" bgcolor="#303f66" align="center" style="border: 1px solid #cccccc; color: #ffffff;"><b>Mi</b></td>';
 ret += '<td width="20" height="20" bgcolor="#303f66" align="center" style="border: 1px solid #cccccc; color: #ffffff;"><b>Jo</b></td>';
 ret += '<td width="20" height="20" bgcolor="#303f66" align="center" style="border: 1px solid #cccccc; color: #ffffff;"><b>Vi</b></td>';
 ret += '<td width="20" height="20" bgcolor="#303f66" align="center" style="border: 1px solid #cccccc; color: #ffffff;"><b>Sa</b></td>';
 ret += '<td width="20" height="20" bgcolor="#303f66" align="center" style="border: 1px solid #cccccc; color: #ffffff;"><b>Du</b></td>';
 ret += '</tr>';

 var day = 1;

 // for max 6 rows
 for( var i = 0; i <= 5; i++) {
 if( day > stop) {
 ret += '<tr><td colspan="7">&nbsp;</td></tr>';
 break;
 }

 ret += '<tr>';

 // monday to sunday
 for( var j = 0; j <= 6; j++) {
 if( (i == 0 && j < start) || day > stop) {
 ret += '<td>&nbsp;</td>';
 } else {

 if( (month == thismonth && day < thisday && year == thisyear) || (year < thisyear) || (year==thisyear && month < thismonth)) {
 // past day
 	if( day == selday) {
 // but selected
 		ret += '<td width="20" height="20" bgcolor="#fdc7c7" align="center" style="border: 1px solid #cccccc; color: #ffffff;"><b style="font-weight: bold; color: #bbbbbb;">' + day + '</b></td>';
 	} else {
	 	ret += '<td width="20" height="20" bgcolor="#ffffff" align="center" style="border: 1px solid #cccccc; color: #ffffff;"><b style="font-weight: normal; color: #bbbbbb;">' + day + '</b></td>';
 	}
 }else if( year>lastyear || (year==lastyear && (month>lastmonth || ( month==lastmonth && day > lastday) ) ) ){
 // future inactive days
 	if( day == selday) {
 // but selected
 		ret += '<td width="20" height="20" bgcolor="#fdc7c7" align="center" style="border: 1px solid #cccccc; color: #ffffff;"><b style="font-weight: bold; color: #bbbbbb;">' + day + '</b></td>';
 	} else {
	 	ret += '<td width="20" height="20" bgcolor="#ffffff" align="center" style="border: 1px solid #cccccc; color: #ffffff;"><b style="font-weight: normal; color: #bbbbbb;">' + day + '</b></td>';
 	}
 } else if( month == thismonth && day > (thisday - 7) && year == (thisyear + 1)) {
 // no day
 ret += '<td>&nbsp;</td>';
 } else if( day == selday) {
 // selected day
 ret += '<td width="20" height="20" bgcolor="#f70000" align="center" style="border: 1px solid #cccccc; color: #ffffff;"><b style="font-weight: bold; color: #fff;">' + day + '</b></td>';
 } else {
 // future day
 if( day >= selday-range && day <= selday+range) {
 ret += '<td width="20" height="20" bgcolor="#d9edff" align="center" style="border: 1px solid #cccccc; color: #ffffff;"><a onclick="updateDay( ' + day + ',' + seg + ');" href="javascript:void(0);" style="text-decoration:none;color:#192b41">' + day + '</td>';
 } else {
 ret += '<td width="20" height="20" bgcolor="#ffffff" align="center" style="border: 1px solid #cccccc; color: #ffffff;"><a onclick="updateDay( ' + day + ',' + seg + ');" href="javascript:void(0);" style="text-decoration:none;color:#192b4">' + day + '</td>';
 }
 }

 day++;
 }
 }

 ret += '</tr>';
 }

 ret += '</tbody>';
 ret += '</table>';
 ret += '</div>';

 return ret;
}

function initializeScreen()
{
 if( window.fb_input_init) {
 fb_input_init();
 }
}



// update the calendar
function updateCalendar( seg)
{
  var day0        = Number( document.fb_input.day0.value);
  var arr_month0  = document.fb_input.elements['month0'].value.split('-');
  if( arr_month0.length == 2){
    var month0    = parseInt(1 * arr_month0[0]);
    var year0     = arr_month0[1];
  } else {
    var month0    = Number( document.fb_input.month0.value);
    var year0     = d.getYear();
  }
  var range0      = Number( document.fb_input.range0.value);

  if( typeof document.fb_input.elements['day1'] != 'undefined'){
    var day1       = Number( document.fb_input.day1.value);
    var arr_month1  = document.fb_input.elements['month1'].value.split('-');
    if(arr_month1.length == 2){
      var month1    = parseInt(1 * arr_month1[0]);
      var year1     = arr_month1[1];
    } else {
      var month1    = Number( document.fb_input.month0.value);
      var year1     = d.getYear();
    }
    var range1      = Number( document.fb_input.range1.value);
  } else {
    var day1 = false;
    var month1 = false;
    var year1 = false;
    var range1 = false;
  }

  var d         = new Date();
  var thisday   = d.getDate();
  var thismonth = d.getMonth()+1;
  var thisyear  = d.getYear();
  if( year0 < 999) year0 += 1900;
  if( year1 < 999) year1 += 1900;
  // in current month only today + future is allowed
  if( month0 == thismonth && day0 < thisday && year0 == thisyear) {
    day0 = thisday;
    document.fb_input.day0.selectedIndex = day0 - 1;
  }

  // in current month only today + future is allowed
  if( month1 == thismonth && day1 < thisday && year1 == thisyear) {
    day1 = thisday;
    document.fb_input.day1.selectedIndex = day1 - 1;
  }

  // get the number of days for outbound month
  stop = maxday( month0, year0);

  if( day0 > stop) {
    day0 = stop;
    document.fb_input.day0.selectedIndex = day0 - 1;
  }

  // get the number of days for inbound month
  stop = maxday( month1, year1);

  if( day1 > stop) {
    day1 = stop;
    document.fb_input.day1.selectedIndex = day1 - 1;
  }
  // check if we have to update the other calendar
  d0 = document.fb_input.day0.selectedIndex;
  if(day1){
    var d1 = document.fb_input.day1.selectedIndex;
  } else {
    var d1 = false;
  }
  m0 = document.fb_input.month0.selectedIndex;
  if(month1){
    m1 = document.fb_input.month1.selectedIndex;
  } else {
    m1 = false;
  }

  if( seg == 0) {
    if(d1 >= 0 && m1 >= 0 ){
      if( m0 > m1) {
        document.fb_input.month1.selectedIndex = m0;
        month1=month0;
      }
      if( m0 == m1 && d0 > d1) {
        document.fb_input.day1.selectedIndex = d0;
        day1=day0;
      }
    }
  }

  updateThisCalendar( day0, month0, year0, range0, 0);
  updateThisCalendar( day1, month1, year1, range1, 1);
}

function maxday( month, year)
{
  var time = new Date( year, month-1, 1);
  var max = 31;

  if( month == 4 || month == 6 || month == 9 || month == 11) {
    --max;
  }

  if( month == 2) {
    max = max - 3;

    if( year % 4 == 0) {
      max++;
    }

    if( year % 100 == 0) {
      max--;
    }

    if( year % 400 == 0) {
      max++;
    }
  }

  return max;
}

function updateThisCalendar( day, month, year, range, seg)
{
   var d         = new Date();
   var thisday   = d.getDate();
   var thismonth = d.getMonth()+1;
   var thisyear  = d.getYear();

   if( year < 999) year += 1900;
   if( thisyear < 999) thisyear += 1900;

   if( month < 1 && year > thisyear){
     month = 12;
     year--;
   }

   if( month > 12 && thisyear == year){
     month = 1;
     year++;
   }

   if( month < thismonth && thisyear == year){
     year++;
   }

   if(month  > thismonth && year > thisyear){
     month = thismonth;
     year = thisyear;
   }

   document.getElementById( 'calendar' + seg).innerHTML = calendar_fb( day, month, year, range, seg)
}

function updateDay( day, seg)
{
 eval( 'document.fb_input.day' + seg + '.selectedIndex=' + (day - 1));
       updateCalendar( seg);
}

function initializeObjects()
{
  objlist = document.getElementsByTagName("object");
  for ( var thisobj = 0; thisobj < objlist.length; thisobj++) {
    objlist[thisobj].outerHTML = objlist[thisobj].outerHTML;
  }
}
