/**
* @author BartekC
*/
 var dtCh= ".";
 var minYear=00;
 var maxYear=99;
 var id = -1;
 var num = -1;
 var row = -1;
function el(s)
{
 return document.getElementById(s);
}
function getMonths(year)
{
 var months = new Array();
 months['00'] = 31;
 months['01'] = 31;
 months['02'] = daysInFebruary(year);
 months['03'] = 31;
 months['04'] = 30;
 months['05'] = 31;
 months['06'] = 30;
 months['07'] = 31;
 months['08'] = 31;
 months['09'] = 30;
 months['10'] = 31;
 months['11'] = 30;
 months['12'] = 31;
 return months;
}
function daysInFebruary (year){
 return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}
function setNewDate( source_date_input, destination_date_input, day_incrementation )
{
 dtStr = el(source_date_input).value;
 var pos1=dtStr.indexOf(dtCh);
 var pos2=dtStr.indexOf(dtCh,pos1+1);
 var strDay=dtStr.substring(0,pos1);
 var strMonth=dtStr.substring(pos1+1,pos2);
 var strYear=dtStr.substring(pos2+1);
 var minutes = 1000*60;
 var hours = 60*minutes;
 var day = 24*hours;
 var newDate = new Date();
 newDate.setFullYear(strYear, strMonth-1, strDay);
 newTime = newDate.getTime()+day_incrementation*day;
 newDate.setTime(newTime);
 strDay=newDate.getDate();
 if(strDay < 10 )
  strDay = "0"+strDay;
 strMonth=newDate.getMonth()+1;
 if(strMonth < 10 )
  strMonth = "0"+strMonth;
 var strYear=newDate.getFullYear();
 if(strYear < 10 )
  strYear = "0"+strYear;
 var new_date = strDay+dtCh+strMonth+dtCh+strYear;
 el(destination_date_input).value = new_date;
}
function setYear( month_selected_input, year_to_update_input )
{
 var month_selected = el(month_selected_input).selectedIndex+1;
 var date = new Date();
 var month_now = date.getMonth()+1;
 var month = month_now+month_selected;
 var year_inc = 0;
 for( i = 0; month > 12; i++ )
 {
  month-=12;
  year_inc++;
 }
 var year_to_update=6+year_inc;
 el(year_to_update_input).value = '0'+year_to_update;
}
function setTimer(nums,rows)
{
 num = nums;
 row = rows;
 if(num == 0)
  clearTimeout(id);
 if(num == 1)
  id = setTimeout('setNewDates(row);',1500);
}
function last()
{
 var my1=el('startflight_month_year');
 var d1=el('startflight_day');
 var my2=el('endflight_month_year');
 var d2=el('endflight_day');	
 var vy1='20'+''+my1.value.substring(0,2);
 var vm1=my1.value.substring(2,4);
 var vd1=d1.value;
 var vy2='20'+''+my2.value.substring(0,2);
 var vm2=my2.value.substring(2,4);
 var vd2=d2.value;
 var offset = el('sel_duration').value;
 if(offset=='')
  offset = 1;
 offset = offset*24*3600*1000;
 var startDate = new Date();
 startDate.setFullYear(vy1, vm1-1, vd1);
 var startTime = startDate.getTime();
 var endDate = new Date();
 endDate.setFullYear(vy2, vm2-1, vd2);
 var endTime = endDate.getTime();
 if(startTime+offset > endTime)
 {
  endTime = startTime+offset;
  endDate.setTime(endTime);
  var new_strDay=endDate.getDate();
  var new_strMonth=endDate.getMonth()+1;
  var new_strYear=endDate.getFullYear();
  new_strYear=new_strYear-2000;
  if(new_strDay < 10 )
   new_strDay = "0"+new_strDay;
  if(new_strMonth < 10 )
   new_strMonth = "0"+new_strMonth;
  if(new_strYear < 10 )
   new_strYear = "0"+new_strYear;
  var newMonthYear = new_strYear+""+new_strMonth;
  my2.value = newMonthYear;
  d2.value = new_strDay;
  return;
 }	
 if(startTime+(42*24*3600*1000) > endTime)
  setNewDates(-1);
}
function setNewDates(rows)
{
 var ddmi=el('startflight_month_year');
 var dddi=el('startflight_day');
 var ddmi2=el('endflight_month_year');
 var dddi2=el('endflight_day');
 var strStartMonthYear=ddmi.value;
 var strStartDay=dddi.value;
 var strStartMonth=strStartMonthYear.substring(2,4);
 var strStartYear='20'+strStartMonthYear.substring(0,2);
 var startDate = new Date();
 startDate.setFullYear(strStartYear, strStartMonth-1, strStartDay);
 var startTime = startDate.getTime();
 var offset = el('sel_duration').value;
 if(offset=='')
  offset = 3;
 var strEndMonthYear=ddmi2.value;
 var strEndDay=dddi2.value;
 var strEndMonth=strEndMonthYear.substring(2,4);
 var strEndYear='20'+strEndMonthYear.substring(0,2);
 var endDate = new Date();
 endDate.setFullYear(strEndYear, strEndMonth-1, strEndDay);
 var endTime = endDate.getTime();
 if((startTime+(offset*24*60*60*1000))<endTime && (startTime+(42*24*60*60*1000))>endTime)
  return;
 if((startTime+(offset*24*60*60*1000))>=endTime && (startTime+(42*24*60*60*1000))>endTime)
 {
  if(rows==-1)
   rows=row;
  if(rows==0)
  {
   setNewDateForSelect('startflight_day','startflight_month_year','endflight_day', 'endflight_month_year', offset);
   setDaysInMonth('startflight_month_year', 'startflight_day');
  }
  if(rows==1)
  {
   setNewDateForSelect('startflight_day','startflight_month_year','endflight_day', 'endflight_month_year', offset);
   setDaysInMonth('endflight_month_year', 'endflight_day');
   setDaysInMonth('startflight_month_year', 'startflight_day');
  }
  if(rows==2)
  {
   setNewDateForSelect('endflight_day', 'endflight_month_year','startflight_day','startflight_month_year', -offset);
   setDaysInMonth('endflight_month_year', 'endflight_day');
  }
  if(rows==3)
  {
   setNewDateForSelect('endflight_day', 'endflight_month_year','startflight_day','startflight_month_year', -offset);
   setDaysInMonth('startflight_month_year', 'startflight_day');
   setDaysInMonth('endflight_month_year', 'endflight_day');
  }
  return;
 }
 if(rows==-1)
  rows=row;
 if(rows==0)
 {
  setNewDateForSelect('startflight_day','startflight_month_year','endflight_day', 'endflight_month_year', 42);
  setDaysInMonth('startflight_month_year', 'startflight_day');
 }
 if(rows==1)
 {
  setNewDateForSelect('startflight_day','startflight_month_year','endflight_day', 'endflight_month_year', 42);
  setDaysInMonth('endflight_month_year', 'endflight_day');
  setDaysInMonth('startflight_month_year', 'startflight_day');
 }
 if(rows==2)
 {
  setNewDateForSelect('endflight_day', 'endflight_month_year','startflight_day','startflight_month_year', -42);
  setDaysInMonth('endflight_month_year', 'endflight_day');
 }
 if(rows==3)
 {
  setNewDateForSelect('endflight_day', 'endflight_month_year','startflight_day','startflight_month_year', -42);
  setDaysInMonth('startflight_month_year', 'startflight_day');
  setDaysInMonth('endflight_month_year', 'endflight_day');
 }
}

function startDates(source_date_day_input,source_date_month_input,diff)
{
 var strMonthYear=el(source_date_month_input).value;
 var strDay=el(source_date_day_input).value;	
 if(el('flight_from_month_year'))
 {
   var strMonth=strMonthYear.substring(0,2);
   var strYear='20'+strMonthYear.substring(2,4);	
 }
 else
 {
   var strMonth=strMonthYear.substring(2,4);
   var strYear='20'+strMonthYear.substring(0,2);
 }
 var oldDate = new Date();
 oldDate.setFullYear(strYear, strMonth-1, strDay);
 oldTime = oldDate.getTime();

 var today = new Date();
 var now=today.getTime();

 var day = 1000*60 *60 *24;
 var offset = 0;
 if(offset=='')
  offset = 1;
 if(diff=='')
   diff=14;

 offset = offset*day;

 var newDate = new Date();
 if (oldTime<(now+offset))
   newDate.setTime(now+offset);
 else
   return;

 var new_strDay=newDate.getDate();
 var new_strMonth=newDate.getMonth()+1;
 var new_strYear=newDate.getFullYear();

 new_strYear=new_strYear-2000;
 if(new_strDay < 10 )
  new_strDay = "0"+new_strDay;
 if(new_strMonth < 10 )
  new_strMonth = "0"+new_strMonth;
 if(new_strYear < 10 )
  new_strYear = "0"+new_strYear;
 if(el('flight_from_month_year'))  
   var new_strMonthYear=new_strMonth+''+new_strYear;
 else
   var new_strMonthYear=new_strYear+''+new_strMonth;
 
 el(source_date_month_input).value=new_strMonthYear;
 el(source_date_day_input).value = new_strDay;
 var oldDate = new Date();
 oldDate.setFullYear(2000+(new_strYear*1), new_strMonth-1, new_strDay);
 oldTime = oldDate.getTime()+(diff*1000*60*60*24);
 oldDate.setTime(oldTime);
 
 new_strDay=oldDate.getDate();
 new_strMonth=oldDate.getMonth()+1;
 new_strYear=oldDate.getFullYear();
 new_strYear=new_strYear-2000;
 if(new_strDay < 10 )
  new_strDay = "0"+new_strDay;
 if(new_strMonth < 10 )
  new_strMonth = "0"+new_strMonth;
 if(new_strYear < 10 )
  new_strYear = "0"+new_strYear;
  
 if(el('flight_to_month_year'))
 {
    var new_strMonthYear=new_strMonth+''+new_strYear;
	el('flight_to_month_year').value = new_strMonthYear;
	el('flight_to_days').value = new_strDay;
 }
 else
 {
    var new_strMonthYear=new_strYear+''+new_strMonth;
	el('endflight_month_year').value = new_strMonthYear;
	el('endflight_day').value = new_strDay;
 }
}

function setNewDateForSelect( source_date_day_input, source_date_month_input, destination_date_day_input, destination_date_month_input, day_incrementation )
{
 var strMonthYear=el(source_date_month_input).value;
 var strDay=el(source_date_day_input).value;
 if(el('flight_from_month_year'))
 {
   var strMonth=strMonthYear.substring(0,2);
   var strYear='20'+strMonthYear.substring(2,4);	
 }
 else
 {
   var strMonth=strMonthYear.substring(2,4);
   var strYear='20'+strMonthYear.substring(0,2);
 }
 var offset = el('sel_duration').value;
 if(offset=='')
  offset = 3;
 var day = 1000*60 *60 *24;
 offset = offset*day;
 var old_strMonthYear=el(destination_date_month_input).value;
 var old_strDay=el(destination_date_day_input).value;
 var old_strMonth=old_strMonthYear.substring(2,4);
 var old_strYear='20'+old_strMonthYear.substring(0,2);
 var oldDate = new Date();
 oldDate.setFullYear(old_strYear, old_strMonth-1, old_strDay);
 oldTime = oldDate.getTime();
 var newDate = new Date();
 newDate.setFullYear(strYear, strMonth-1, strDay);
 newTime = newDate.getTime()+day_incrementation*day;
 newDate.setTime(newTime);
 var today = new Date();
 var now=today.getTime();
 if (newTime<now)
  newDate.setTime(now);
 if(day_incrementation>0)
 {
 }
 else
 {
  if(((oldTime+offset)>newTime) && (Math.abs(((oldTime+offset)-newTime)/day)<Math.abs(day_incrementation)))
  {
   /*alert('tu');*/
   checkTripDates(day_incrementation);
   return;
  }
 }
 var new_strDay=newDate.getDate();
 var new_strMonth=newDate.getMonth()+1;
 var new_strYear=newDate.getFullYear();
 new_strYear=new_strYear-2000;
 if(new_strDay < 10 )
  new_strDay = "0"+new_strDay;
 if(new_strMonth < 10 )
  new_strMonth = "0"+new_strMonth;
 if(new_strYear < 10 )
  new_strYear = "0"+new_strYear;
 if(el('flight_from_month_year'))  
   var new_strMonthYear=new_strMonth+new_strYear;
 else
   var new_strMonthYear=new_strYear+new_strMonth;
 el(destination_date_month_input).value=new_strMonthYear;
 el(destination_date_day_input).value = new_strDay;
 checkTripDates(day_incrementation);
}
function checkTripDates(day_incrementation)
{
 var today = new Date();
 today.setDate(today.getDate()+dateOffset);
 var now=today.getTime();
 var nowDay=today.getDate();
 var nowMonth=today.getMonth()+1;
 var nowYear=today.getFullYear()-2000;
 if(nowDay < 10 )
  nowDay = "0"+nowDay;
 if(nowMonth < 10 )
  nowMonth = "0"+nowMonth;
 if(nowYear < 10 )
  nowYear = "0"+nowYear;
 var nowMonthYear = nowYear+nowMonth;
 var ddmi=el('startflight_month_year');
 var dddi=el('startflight_day');
 var ddmi2=el('endflight_month_year');
 var dddi2=el('endflight_day');
 if(!ddmi)
   ddmi=el('flight_from_month_year');
 if(!dddi)
   dddi=el('flight_from_days');
 if(!ddmi2)
   ddmi2=el('flight_to_month_year');
 if(!dddi2)
   dddi2=el('flight_to_days');
 var strStartMonthYear=ddmi.value;
 var strStartDay=dddi.value;
 if(el('flight_from_month_year'))
 {
   var strStartMonth=strStartMonthYear.substring(0,2);
   var strStartYear='20'+strStartMonthYear.substring(2,4);	
 }
 else
 {
   var strStartMonth=strStartMonthYear.substring(2,4);
   var strStartYear='20'+strStartMonthYear.substring(0,2);
 }
 var startDate = new Date();
 startDate.setFullYear(strStartYear, strStartMonth-1, strStartDay);
 var startTime = startDate.getTime();
 var strEndMonthYear=ddmi2.value;
 var strEndDay=dddi2.value;
 if(el('flight_to_month_year'))
 {
   var strEndMonth=strEndMonthYear.substring(0,2);
   var strEndYear='20'+strEndMonthYear.substring(2,4);
 }
 else
 {
   var strEndMonth=strEndMonthYear.substring(2,4);
   var strEndYear='20'+strEndMonthYear.substring(0,2);
 }
 var endDate = new Date();
 endDate.setFullYear(strEndYear, strEndMonth-1, strEndDay);
 var endTime = endDate.getTime();
 if(startTime<now)
 {
  ddmi.value=nowMonthYear;
  dddi.value=nowDay;
 }
 if(endTime<startTime)
 {
  ddmi2.value=ddmi.value;
  dddi2.value=dddi.value;
 }
}
function validBDD(kindnr)
{
 var knd_y = el('birthdate_'+kindnr+'_yy');
 var knd_m = el('birthdate_'+kindnr+'_mm');
 var knd_d = el('birthdate_'+kindnr+'_dd');
 months_d = getMonths(knd_y.value);
 knd_d.length = months_d[knd_m.value]+1;
 knd_d.options[0].value = '00';knd_d.options[0].text = '---';
 for( i = 1; i < 10; i++ )
 {
  knd_d.options[i].value = '0'+i;
  knd_d.options[i].text = '0'+i;
 }
 for( i = 10; i <= knd_d.length-1; i++ )
 {
  knd_d.options[i].value = i;
  knd_d.options[i].text = i;
 }
}
function checkHidden(elem)
{
 if(elem.checked)
  el(elem.id+'_ext').value = 1;
 else
  el(elem.id+'_ext').value = 0;
}
function setDaysInMonth( source_date_month_input, destination_date_days_select )
{
 var strMonthYear=el(source_date_month_input).value;
 var strYear = "20"+strMonthYear.substring(0,2);
 months_d = getMonths(strYear);
 var strMonth=strMonthYear.substring(2,4);
 el(destination_date_days_select).length = months_d[strMonth];
 for( i = 28; i <= months_d[strMonth]; i++ )
 {
  el(destination_date_days_select).options[i-1].value = i;
  el(destination_date_days_select).options[i-1].text = i;
 }
}
