function initTabs()
{
	var sets = document.getElementsByTagName("div");
	for (var i = 0; i < sets.length; i++)
	{
		if (sets[i].className.indexOf("tabset") != -1)
		{
			var tabs = [];
			var links = sets[i].getElementsByTagName("a");
			for (var j = 0; j < links.length; j++)
			{
				if (links[j].className.indexOf("tab") != -1)
				{
					tabs.push(links[j]);
					links[j].tabs = tabs;
					var c = document.getElementById(links[j].href.substr(links[j].href.indexOf("#") + 1));

					//reset all tabs on start
					if (c) if (links[j].className.indexOf("active") != -1) c.style.display = "block";
					else c.style.display = "none";

					links[j].onclick = function ()
					{
						var c = document.getElementById(this.href.substr(this.href.indexOf("#") + 1));
						if (c)
						{
							//reset all tabs before change
							for (var i = 0; i < this.tabs.length; i++)
							{
								document.getElementById(this.tabs[i].href.substr(this.tabs[i].href.indexOf("#") + 1)).style.display = "none";
								this.tabs[i].className = this.tabs[i].className.replace("active", "");
							}
							this.className += " active";
							c.style.display = "block";
							return false;
						}
					}
				}
			}
		}
	}
}

if (window.addEventListener) window.addEventListener("load", initTabs, false);
else if (window.attachEvent) window.attachEvent("onload", initTabs);



hover = function() {
	var nav = document.getElementById("nav");
	if(nav){
		var nodes = nav.getElementsByTagName("li")
		for (var i=0; i<nodes.length; i++) {
			nodes[i].onmouseover=function() {
				this.className+=" hover";
			}
			nodes[i].onmouseout=function() {
				this.className=this.className.replace(new RegExp(" hover\\b"), "");
			}
		}
	}
}
if (window.attachEvent) window.attachEvent("onload", hover);

function showDiv(divId)
{
  var div = document.getElementById(divId);
  div.style.display = '';
}

function hideDiv(divId)
{
  var div = document.getElementById(divId);
  div.style.display = 'none';
}

function go(loc)
{
  window.location.href = loc;
}

function switch_to_datafield(datafield_number)
{
  $('datafield').value = datafield_number;

  for(var counter = 0; counter < 3; counter++)
  {
    if(counter == datafield_number) $('datafield['+counter+']').show();
    else $('datafield['+counter+']').hide();
  }
}

function set_last_current_trip(datafield_number)
{
	$('last_trip').value = $('current_trip').value;
	$('current_trip').value = datafield_number;
	last = $('last_trip').value;
	current = $('current_trip').value;
	//alert("last:" + $('last_trip').value + " current:" + $('current_trip').value);
	    $('unit['+current+'][0][from]').value = $('unit['+last+'][0][from]').value
		$('unit['+current+'][0][to]').value = $('unit['+last+'][0][to]').value
		$('unit['+current+'][0][departure]').value = $('unit['+last+'][0][departure]').value
		$('unit['+current+'][0][departure_hour]').selectedIndex = $('unit['+last+'][0][departure_hour]').selectedIndex
		$('unit['+current+'][0][pax]').value = $('unit['+last+'][0][pax]').value	
}

function add_leg()
{
  var unit_counter = $('units_number');
  var counter = parseInt(unit_counter.value);


    var new_unit = document.createElement('div');
    new_unit.writeAttribute('id', 'unit['+counter+']');




      //Adding first row of elements to the block
      var first_row = document.createElement('div');
        first_row.addClassName('row');

        var first_label = document.createElement('label');
        first_label.addClassName('txt');
        first_label.innerHTML = 'From';

        var first_div = document.createElement('div');
          var first_div_input = document.createElement('input');
          first_div_input.writeAttribute('name', 'unit['+counter+'][from]');
          first_div_input.writeAttribute('type', 'text');
          first_div_input.writeAttribute('value', '');
        first_div.appendChild(first_div_input);

      first_row.appendChild(first_label);
      first_row.appendChild(first_div);



      //Adding second row of elements to the block
      var second_row = document.createElement('div');
        second_row.addClassName('row');

        var second_label = document.createElement('label');
        second_label.addClassName('txt');
        second_label.innerHTML = 'To';

        var second_div = document.createElement('div');
          var second_div_input = document.createElement('input');
          second_div_input.writeAttribute('name', 'unit['+counter+'][to]');
          second_div_input.writeAttribute('type', 'text');
          second_div_input.writeAttribute('value', '');
        second_div.appendChild(second_div_input);

      second_row.appendChild(second_label);
      second_row.appendChild(second_div);




      //Adding third row of elements to the block
      var third_row = document.createElement('div');
        third_row.addClassName('row');
        third_row.addClassName('style');

        var third_label = document.createElement('label');
        third_label.addClassName('txt');
        third_label.innerHTML = 'Departure';

        var third_div = document.createElement('div');
          var third_div_input = document.createElement('input');
          third_div_input.writeAttribute('id', 'unit[2]['+counter+'][departure]');
          third_div_input.writeAttribute('name', 'unit['+counter+'][departure]');
          third_div_input.writeAttribute('type', 'text');
          third_div_input.writeAttribute('size', '10');
          third_div_input.writeAttribute('onchange', 'update_multileg_trip_filters();');
          third_div_input.addClassName('w8em');
          third_div_input.addClassName('divider-slash');
          third_div_input.addClassName('format-m-d-y');
          third_div_input.addClassName('range-low-today');
        third_div.appendChild(third_div_input);

        var third_calendar = document.createElement('a');
        third_calendar.writeAttribute('href', "#");
        third_calendar.writeAttribute('onclick', 'javascript:datePickerController.datePickers["unit[2]['+counter+'][departure]"].show();return false;');
        third_calendar.innerHTML = 'botton';

        var array_of_times = new Array('12am', '1am', '2am', '3am', '4am', '5am', '6am', '7am', '8am', '9am', '10am', '11am', '12am', '1pm', '2pm', '3pm', '4pm', '5pm', '6pm', '7pm', '8pm', '9pm', '10pm', '11pm');
        var third_select = document.createElement('select');
        third_select.writeAttribute('name', 'unit['+counter+'][departure_hour]');
        for(var i = 0; i < array_of_times.length; i++)
        {
          var temp_option = document.createElement('option');
          temp_option.innerHTML = array_of_times[i];
          
          if(array_of_times[i] == '8am') temp_option.writeAttribute('selected', 'selected');

          third_select.appendChild(temp_option);
        }

      third_row.appendChild(third_label);
      third_row.appendChild(third_div);
      third_row.appendChild(third_calendar);
      third_row.appendChild(third_select);




    new_unit.appendChild(first_row);
    new_unit.appendChild(second_row);
    new_unit.appendChild(third_row);

  $('datafield[2]').appendChild(new_unit);

  unit_counter.value = counter + 1;

  datePickerController.create();
  update_multileg_trip_filters(); // we have to run this after unit_counter was raised because function uses it

  move_legs_management_to_the_bottom();
}

function remove_leg()
{
  var unit_counter = $('units_number');
  var counter = parseInt(unit_counter.value);

  $('unit['+(counter-1)+']').remove();
  
  unit_counter.value = counter - 1;


  var deleted_picker = datePickerController.datePickers['unit[2]['+(counter-1)+'][departure]'];
  datePickerController.destroy(deleted_picker);

  update_multileg_trip_filters();
}

function move_legs_management_to_the_bottom()
{
  var management_block = $('legs_management');

  $('legs_management').remove();

  $('datafield[2]').appendChild(management_block);
}

// With several elements with same name on form we have to copy data to the first element with same name to get it on the server side
function copy_data_to_the_first_element()
{
  var active_part_number = parseInt($('datafield').value);

  $('unit[0][0][from]').value = $('unit['+active_part_number+'][0][from]').value;
  $('unit[0][0][to]').value = $('unit['+active_part_number+'][0][to]').value;
  $('unit[0][0][departure]').value = $('unit['+active_part_number+'][0][departure]').value;
  $('unit[0][0][departure_hour]').value = $('unit['+active_part_number+'][0][departure_hour]').value;
}

function update_round_trip_filters()
{
  var from_id = 'unit[1][0][departure]';
  var to_id = 'unit[1][0][return]';

  var today = new Date();
  var lower_limit_date = (datePickerController.datePickers[from_id].date < today) ? today : datePickerController.datePickers[from_id].date;

  datePickerController.datePickers[to_id].setRangeLow(make_crazy_YYYYMMDD_from_date(lower_limit_date));
  if(datePickerController.datePickers[to_id].date > today) // if return date was set
    {
      datePickerController.datePickers[from_id].setRangeHigh(make_crazy_YYYYMMDD_from_date(datePickerController.datePickers[to_id].date));
    }
}

function update_multileg_trip_filters()
{
  var units_number = parseInt($('units_number').value);
  var today = new Date();

  for(var counter = 0; counter < units_number; counter++)
    {
      var temp_id = 'unit[2]['+counter+'][departure]';

      if(counter == 0)  // first leg
      {
        if($('unit[2]['+(counter+1)+'][departure]') != undefined) // if there is next element then we have to set high limit with its value
          {
            if(datePickerController.datePickers['unit[2]['+(counter+1)+'][departure]'].date > today) datePickerController.datePickers[temp_id].setRangeHigh(make_crazy_YYYYMMDD_from_date(datePickerController.datePickers['unit[2]['+(counter+1)+'][departure]'].date));
          }
      }
      else if(counter == (units_number - 1)) // last leg
      {
        if(units_number > 1) // if we have more than one element and we need to set lower limit for the last one
          {
            if(datePickerController.datePickers['unit[2]['+(counter-1)+'][departure]'].date > today) datePickerController.datePickers[temp_id].setRangeLow(make_crazy_YYYYMMDD_from_date(datePickerController.datePickers['unit[2]['+(counter-1)+'][departure]'].date));
          }
      }
      else // one of middle legs. For them we need to set both upper and lower limits
      {
        if(datePickerController.datePickers['unit[2]['+(counter+1)+'][departure]'].date > today) datePickerController.datePickers[temp_id].setRangeHigh(make_crazy_YYYYMMDD_from_date(datePickerController.datePickers['unit[2]['+(counter+1)+'][departure]'].date));
        if(datePickerController.datePickers['unit[2]['+(counter-1)+'][departure]'].date > today) datePickerController.datePickers[temp_id].setRangeLow(make_crazy_YYYYMMDD_from_date(datePickerController.datePickers['unit[2]['+(counter-1)+'][departure]'].date));
      }
    }
}

function make_crazy_YYYYMMDD_from_date(date)
{
  var day = (date.getDate() < 10) ? '0'+date.getDate().toString() : date.getDate().toString();
  var month = date.getMonth() + 1;
  var month = (month < 10) ? '0'+month.toString() : month.toString();
  return date.getFullYear().toString()+month+day;
}

function switch_aircraft_type(id)
{
  $('type'+id).toggle();
  return false;
}

function update_images_list(select)
{
  new Ajax.Request('/articles/update_images_list?folder='+select.value, {method: 'get'});
}