function renderObjFromTemplate (templateSelector, directive, context, compiledFunction)
{
  var $obj = null;
  if (templateSelector)
  {
    var $template = $(templateSelector);
    if ($template)
    {
      if (compiledFunction)
      {
        if (!$p.compiledFunctions[compiledFunction])
        {
          $template.clone().compile (compiledFunction, directive);
        }
        $obj = $('<div/>').render (context, compiledFunction, $template);
      }
      else
      {
        $obj = $('<div/>').render (context, directive, $template);
      }
    }
  }

  return $obj;
}
function initSearchPopups ()
{
  var getItems = function (className, start, end, singular, plural)
  {
    var items = [];

    for (var i = start; i <= end; i++)
    {
      var item = {
        txtValue: null,
        data: i
      };
      if (i == 1)
      {
        item.txtValue = i + ' ' + singular;
      }
      else
      {
        item.txtValue = i + ' ' + plural;
      }
      items.push(item);
    }
    return {
      'className': className,
      'items': items
    };
  }
  var weeks = {
    className : 'weeks',
    items : [
    {
      txtValue: '1 Woche',
      data: 7
    },

    {
      txtValue: '2 Wochen',
      data: 14
    },

    {
      txtValue: '3 Wochen',
      data: 21
    },
    {
      txtValue: '4 Wochen',
      data: 28
    }
    ]
  }
  var days1 = getItems ('daysLeft', 1, 7, 'Tag', 'Tage');
  var days2 = getItems ('days', 8, 18, 'Tag', 'Tage');
  var days3 = getItems ('days', 19, 28, 'Tag', 'Tage');
  var directive = {
    '[class]' : 'className',
    'li' : 'item <- items',
    'li a' : 'item.txtValue',
    'li a[data]' : function (arg) {
      return arg.item.data;
    }
  };
  var $weeks = renderObjFromTemplate ('#templates ul.selectorList', directive,
    weeks, 'compiledSelectorList');
  var $days1 = renderObjFromTemplate ('#templates ul.selectorList', directive,
    days1, 'compiledSelectorList');
  var $days2 = renderObjFromTemplate ('#templates ul.selectorList', directive,
    days2, 'compiledSelectorList');
  var $days3= renderObjFromTemplate ('#templates ul.selectorList', directive,
    days3, 'compiledSelectorList');
  $("#travelDuration").popup($('<div class="travelDurationPopup"/>').
    append($('<h3>Bitte wählen Sie die Reisedauer aus. Ihre Auswahl wird direct übernommen.</h3>')).
    append($('<div class="col1"/>').append($weeks).append($days1)).
    append($days2).append($days3));
  var airport = {
    className : 'airport',
    items : [
    {
      txtValue: 'Düsseldorf',
      data: 'DUS'
    },

    {
      txtValue: 'Dortmund',
      data: 'DTM'
    }
    ]
  }

  var $airport = renderObjFromTemplate ('#templates ul.selectorList', directive,
    airport, 'compiledSelectorList');

  $("#travelAirport").popup($('<div class="travelAirportPopup"/>').
    append($('<h3>Bitte wählen Sie den Abflughafen aus. Ihre Auswahl wird direct übernommen.</h3>')).
    append($airport));
}

function toggleModifySearch ()
{
  $("#modifySearch").toggle("slide", {
    direction: "left"
  },
  2000);
}