/**
* opens new window
* @author Marcin Bednarski
* @param theURL - URL of new window
* @param winName - name of new window
* @param features - features of new window
*/
function openWindow(theURL,winName,features)
{
  window.open(theURL,winName,features);
}

function compareDates(d_ctrl_1, my_ctrl_1, d_ctrl_2, my_ctrl_2)
{
  d1 = d_ctrl_1.value;
  m1 = my_ctrl_1.value.substring(0,2);
  y1 = my_ctrl_1.value.substring(2,4);
  
  d2 = d_ctrl_2.value;
  m2 = my_ctrl_2.value.substring(0,2);
  y2 = my_ctrl_2.value.substring(2,4);
  
//  today = new date();
//  date1 = new date();
//  date1.setYear(2000+y1);
//  date1.setMonth(-1+m1);
//  date.setDay(d1);
//  
//  if (date1<today)
//  {
//    d1.date1.getDay();
//    m1.date1.getMonth()+1;
//  
//  }
  
  if (y1>y2 || (y1==y2 && m1>m2) || (y1==y2 && m1==m2 && d1>d2))
  {
    d_ctrl_2.value = d_ctrl_1.value;
    my_ctrl_2.value = my_ctrl_1.value;
  }
}

/**
* change lower case characters to upper case
* additionaly changes all umlauts (ä -> ae, ö -> oe, ü -> ue)
* @author Marcin Bednarski
* @param _input = input text field
*/
function toUpper(_input)
{
  var str = _input.value;
  
  str = str.toUpperCase();
  var re = new RegExp("([Ä])","gi");
  str = str.replace(re, "AE");
  re = new RegExp("([Ö])","gi");
  str = str.replace(re, "OE");
  re = new RegExp("([Ü])","gi");
  str = str.replace(re, "UE");
  
  _input.value = str;
}

/**
* strips letters from text input form
* @author Marcin Bednarski
* @param _input = input text object
*/
function stripLetters(_input)
{
  var str = _input.value;
  //var re = /([A-Z])/gi;
  var re = new RegExp("([A-Z])+","gi");
  _input.value = str.replace(re, "");
}

/**
* strips all numbers from text input form
* @author Marcin Bednarski
* @param _input = input text object
*/
function stripNumbers(_input)
{
  var str = _input.value;
  //var re = /([A-Z])/gi;
  var re = new RegExp("([0-9])+","gi");
  _input.value = str.replace(re, "");
}

/**
* sets options in select field
* @author Marcin Bednarski
* @param _select = select object
* @param opts = array with options to set
* @param code = code of base airport
* @param sel = code of selected element in generated options
* @param empty_text = text for zero element
*/
function setOptions(_select,opts,code,sel,empty_text)
{
/*  alert('_select '+_select);
  alert('opts '+opts);
  alert('code '+code);
  alert('sel '+sel);
  alert('empty_text '+empty_text);
  alert("4");
*/
  var new_select = document.createElement('select');
  new_select.className = 'form';
  new_select.name = 'flight_to';
  new_select.width = '150px';
  new_select.onchange = 'SetOneWay(this.options[this.selectedIndex].value)';

  _select.innerHTML = new_select;
  
  var first = new Option(empty_text,"",false,false);
  first.text = empty_text;  
  first.innerHTML = empty_text;  
  _select.appendChild(first);
/*  alert("5");
  alert("dlugosc "+opts[code].length);
*/
//  alert('in set options');
  for (var j in countries)
  {
    var airport_counter = false;
    country_code = j;
    country_name = countries[country_code];


    if(!countriesAirports[country_code])
      countriesAirports[country_code] = new Array();

    for ( k=0; k<countriesAirports[country_code].length; k++)
    {
      for (i=1; i< opts[code].length ;i++ )
      {
        if (opts[code][i] == countriesAirports[country_code][k])
        {
          if (opts[code][i] == sel)
            element_selected = true;
          else
            element_selected = false;

          if(airport_counter==false)
          {
            var opt_country = document.createElement('optgroup');
            opt_country.id = country_name;
            opt_country.label = country_name;
            _select.appendChild(opt_country);
     
            var elem = new Option(opts[opts[code][i]][0],opts[code][i],false,element_selected);
            elem.text = opts[opts[code][i]][0]; 
            elem.innerHTML=elem.text;
            opt_country.appendChild(elem);
            airport_counter = true;
          }
          else
          {
            var elem = new Option(opts[opts[code][i]][0],opts[code][i],false,element_selected);
            elem.text = opts[opts[code][i]][0]; 
            elem.innerHTML=elem.text;
            opt_country.appendChild(elem);
          }
            //alert(opts[opts[code][i]][0]+" / "+opts[code][i]);
        }
      }
    }
  }
/*  alert("6");
*/
}

function getArray(array_name)
{
  return array_name;
}

function setFromOptions(_select,opts,code,sel,empty_text)
{
  _select.options.length = null;
  _select.options[0] = new Option(empty_text,"",false,false);

      option_counter = 1;
  for (var j in departure_countries)
  {
    country_code = j;
    country_name = departure_countries[country_code];
    round = getArray('rounds');
    oneway = getArray('oneways');
    airport_counter = 0;
    var opt_country=null;
    if(countriesAirports[country_code]=='undefined')
     countriesAirports[country_code] = new Array();

    for ( k=0; k<countriesAirports[country_code].length; k++)
    {
      for (i=1; i< opts[code].length ;i++ )
      {
        if (opts[code][i] == countriesAirports[country_code][k])
        {
          if (opts[code][i] == sel)
            element_selected = true;
          else
            element_selected = false;
    
          if(airport_counter==false)
          {
            opt_country = document.createElement('optgroup');
            opt_country.id = country_name;
            opt_country.label = country_name;
            _select.appendChild(opt_country);
       
            var elem = new Option(opts[opts[code][i]][0],opts[code][i],false,element_selected);
            elem.text = opts[opts[code][i]][0]; 
            elem.innerHTML=elem.text;
            opt_country.appendChild(elem);
            airport_counter = true;
          }
          else
          {
            var elem = new Option(opts[opts[code][i]][0],opts[code][i],false,element_selected);
            elem.text = opts[opts[code][i]][0]; 
            elem.innerHTML=elem.text;
            opt_country.appendChild(elem);
            //alert(elem.text);
          }
        }
      }
    }
  }
};

/*function SetOneWay(acode)
{
//  alert(acode);
  
  var twoway_only = false ;
  
  for (var code in oneway_countries)
  {
//    alert(code);
    for (var airportindex in countriesAirports[code])
    if (acode == countriesAirports[code][airportindex])
    {
      twoway_only = true;
//      alert(countriesAirports[code][airportindex]);
//      alert(code);
    }
  }
  
  if (twoway_only)
  {
    if (document.getElementById('oneway').checked == true)
       alert(txt_only_twoway);
    document.getElementById('oneway').disabled = true;
    document.getElementById('withreturn').checked = true;;
    document.getElementById('oneway').checked = false;
    onTwowayClick();
  }
  else
  {
    document.getElementById('oneway').disabled = false;
  }
};
*/
function clr(n)
{
  if(n=='')
  {
  document.getElementById('oneway').disabled = false;
  document.getElementById('withreturn').disabled = false;
  }
}

function SetOneWay(acode)
{
  var flag_ow = 0;
  var flag_rt = 0;
  
  for (i=0; i<oneways.length; i++)
  {
    for (j=0; j<countriesAirports[oneways[i]].length; j++)
    {
    if(countriesAirports[oneways[i]][j]==acode || acode=='')
      flag_ow = 1;
  }  
  }
  
  for (i=0; i<rounds.length; i++)
  {
    for (j=0; j<countriesAirports[rounds[i]].length; j++)
    {
    if(countriesAirports[rounds[i]][j]==acode || acode=='')
      flag_rt = 1;
  }
  }
  if(flag_ow==1)
  {
    document.getElementById('oneway').disabled = false;
    document.getElementById('oneway_td').style.display = '';
  }
  else
  {
    if(document.getElementById('oneway').checked == true)
       alert(txt_only_twoway);
    document.getElementById('oneway').disabled = true;
    document.getElementById('oneway_td').style.display = 'none';  
    document.getElementById('withreturn').checked = true;
    
    document.browser.elements['flight_to_days'].disabled = false;
    document.browser.elements['flight_to_month_year'].disabled = false;
  }  
  if(flag_rt==1)
    document.getElementById('withreturn').disabled = false;
  else
  {
    document.getElementById('withreturn').disabled = true;  
    document.getElementById('oneway').checked = true;
  }
}

