/**
* @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('startMoYe');
 var d1=el('startDay');
 var my2=el('endMoYe');
 var d2=el('endDay');	
 var vy1=my1.value.substring(0,2);
 var vm1=my1.value.substring(3,7);
 var vd1=d1.value;
 var vy2=my2.value.substring(0,2);
 var vm2=my2.value.substring(3,7);
 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;
  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('startMoYe');
 var dddi=el('startDay');
 var ddmi2=el('endMoYe');
 var dddi2=el('endDay');
 var strStartMonthYear=ddmi.value;
 var strStartDay=dddi.value;
 var strStartMonth=strStartMonthYear.substring(0,2);
 var strStartYear =strStartMonthYear.substring(3,7);
 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(0,2);
 var strEndYear =strEndMonthYear.substring(3,7);
 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('startDay','startMoYe','endDay', 'endMoYe', offset);
   setDaysInMonth('startMoYe', 'startDay');
  }
  if(rows==1)
  {
   setNewDateForSelect('startDay','startMoYe','endDay', 'endMoYe', offset);
   setDaysInMonth('endMoYe', 'endDay');
   setDaysInMonth('startMoYe', 'startDay');
  }
  if(rows==2)
  {
   setNewDateForSelect('endDay', 'endMoYe','startDay','startMoYe', -offset);
   setDaysInMonth('endMoYe', 'endDay');
  }
  if(rows==3)
  {
   setNewDateForSelect('endDay', 'endMoYe','startDay','startMoYe', -offset);
   setDaysInMonth('startMoYe', 'startDay');
   setDaysInMonth('endMoYe', 'endDay');
  }
  return;
 }
 if(rows==-1)
  rows=row;
 if(rows==0)
 {
  setNewDateForSelect('startDay','startMoYe','endDay', 'endMoYe', 42);
  setDaysInMonth('startMoYe', 'startDay');
 }
 if(rows==1)
 {
  setNewDateForSelect('startDay','startMoYe','endDay', 'endMoYe', 42);
  setDaysInMonth('endMoYe', 'endDay');
  setDaysInMonth('startMoYe', 'startDay');
 }
 if(rows==2)
 {
  setNewDateForSelect('endDay', 'endMoYe','startDay','startMoYe', -42);
  setDaysInMonth('endMoYe', 'endDay');
 }
 if(rows==3)
 {
  setNewDateForSelect('endDay', 'endMoYe','startDay','startMoYe', -42);
  setDaysInMonth('startMoYe', 'startDay');
  setDaysInMonth('endMoYe', 'endDay');
 }
}

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=strMonthYear.substring(3,7);	
   
 }
 else
 {
   var strMonth=strMonthYear.substring(2,4);
   var strYear=strMonthYear.substring(3,7);
 }
 
 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();
 
 

 
 if(new_strDay < 10 )
  new_strDay = "0"+new_strDay;
 if(new_strMonth < 10 )
  new_strMonth = "0"+new_strMonth;
  
  
  
 if(el('flight_from_month_year'))  
   var new_strMonthYear=new_strMonth+''+new_strYear;
 else
   var new_strMonthYear=new_strMonth+'.'+new_strYear;
   
   
 
 el(source_date_month_input).value=new_strMonthYear;
 el(source_date_day_input).value = new_strDay;
 var oldDate = new Date();
 oldDate.setFullYear((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();
 
 if(new_strDay < 10 )
  new_strDay = "0"+new_strDay;
 if(new_strMonth < 10 )
  new_strMonth = "0"+new_strMonth;
  
    var new_strMonthYear=new_strMonth+'.'+new_strYear;
	el('endMoYe').value = new_strMonthYear;
	el('endDay').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;
 
   var strMonth=strMonthYear.substring(0,2);
   var strYear=strMonthYear.substring(3,7);
 
 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(0,2);
 var old_strYear=old_strMonthYear.substring(3,7);
 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;
 if(new_strDay < 10 )
  new_strDay = "0"+new_strDay;
 if(new_strMonth < 10 )
  new_strMonth = "0"+new_strMonth;
 
 var new_strMonthYear=new_strMonth+'.'+new_strYear;
 
 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();
 if(nowDay < 10 )
  nowDay = "0"+nowDay;
 if(nowMonth < 10 )
  nowMonth = "0"+nowMonth;
 
 var nowMonthYear = nowYear+nowMonth;
 var ddmi=el('startMoYe');
 var dddi=el('startDay');
 var ddmi2=el('endMoYe');
 var dddi2=el('endDay');
 
 var strStartMonthYear=ddmi.value;
 var strStartDay=dddi.value;
 
   var strStartMonth=strStartMonthYear.substring(0,2);
   var strStartYear =strStartMonthYear.substring(3,7);	
 
 var startDate = new Date();
 startDate.setFullYear(strStartYear, strStartMonth-1, strStartDay);
 var startTime = startDate.getTime();
 var strEndMonthYear=ddmi2.value;
 var strEndDay=dddi2.value;
 
   var strEndMonth=strEndMonthYear.substring(0,2);
   var strEndYear =strEndMonthYear.substring(3,7);
 
 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('c'+kindnr['y']);
 var knd_m = el('c'+kindnr['m']);
 var knd_d = el('c'+kindnr['d']);
 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 = strMonthYear.substring(3,7);
 months_d = getMonths(strYear);
 var strMonth=strMonthYear.substring(0,2);
 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;
 }
}
