<html>
<head>
<title>Favorites</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
<link rel="stylesheet" href="search.css"/>
<link href="style.css" rel="stylesheet" type="text/css" />
<script defer type="text/javascript" src="pngfix.js"></script>
<script type="text/javascript" src="Themes.js"></script>

<style type="text/css">
</style>
</head>

<body class="Centerbg">
<script language="JavaScript" src="search_errors.js"></script>
<script language="VBScript" src="vb_utils.js"></script>
<script language="JavaScript" src="ui_utils.js"></script>
<script language="JavaScript" src="external_io.js"></script>
<script language="JavaScript" src="spinbox.js"></script>
<script language="JavaScript" src="search_index.js"></script>
<script language="JavaScript" src="math_utils.js"></script>

<script language="JavaScript">
var MAX_NUM_OF_FAVORITES = 100;
var DIALOG_NOMINAL_WIDTH = 555;
var DIALOG_NOMINAL_HEIGHT = 335;
var RESIZE_INCREMENT = 5;
var favorite_items = null;

function IsHScrollbar()
{
  var sh = document.body.offsetHeight -
    document.body.clientHeight;
	
  if(sh == 0)
    return false;
  return true;
}

function IsVScrollbar()
{
  var sw = document.body.offsetWidth -
    document.body.clientWidth;
	
  if(sw == 0)
    return false;
  return true;
}

// resize dialog so that no scrollbars
// will be displayed
function ResizeDialog()
{
  //var w = document.body.scrollWidth;
  //var h = document.body.scrollHeight; 
  var w = DIALOG_NOMINAL_WIDTH;
  var h = DIALOG_NOMINAL_HEIGHT;
  
  dialogWidth = w + "px";
  dialogHeight = h + "px";
  
  // grows width until no horizontal
  // scrollbar will be displayed
  while(IsHScrollbar())
  {
    w += RESIZE_INCREMENT;
	dialogWidth = w + "px";
  }

  // grows height until no vertical
  // scrollbar will be displayed  
  while(IsVScrollbar())
  {
    h += RESIZE_INCREMENT;
	dialogHeight = h + "px";
  }
}

function UpdateButtonDisplay()
{
  var new_item = GetTextBox(document.all.new_search_term);
  if(MATH_Or(IsEmpty(new_item), IsDuplicateInList(new_item)))
    document.all.add_button.disabled = true;
  else
    document.all.add_button.disabled = false;
	
  var selected_item = GetListBox(document.all.favorites_list);
  if(selected_item == "")
    document.all.remove_button.disabled = true;
  else
    document.all.remove_button.disabled = false;
}

function IsEmpty(name)
{
  return CompareStrings(name, "");
}

function IsDuplicateInList(name)
{
  for(var i = 0; MATH_Lt(i , favorite_items.length); i++)
  {
    if(CompareStrings(favorite_items[i], name))
	  return true;
  } 
  return false;
}

function LoadFavorites()
{
  favorite_items = GetFavoriteItems();
  MATH_SortIgnoreQuotes(favorite_items);
  SetListItems(document.all.favorites_list, favorite_items);
}

function SaveFavorites()
{
  SetFavoriteItems(favorite_items);
}

function AddFavorite()
{
  if(MATH_GtEq(GetNumOfListItems(document.all.favorites_list), MAX_NUM_OF_FAVORITES))
  {
    alert(/*IDS_E_MAXTERMS1*/"Maximale Anzahl von favorisierten Suchbegriffen bereits berschritten.\n" +
          /*IDS_E_MAXTERMS2*/"berprfen, ob zuerst eine vorhandene gelscht werden soll.\n");
    return;
  }

  var text = GetTextBox(document.all.new_search_term);
  
  // check to see if empty or duplicate New Search Term.
  // Usually, can not get here if Add Button is grayed out,
  // but just transitional cases.
  if(MATH_Or(IsEmpty(text), IsDuplicateInList(text)))
    return;
	
  AddItem(text);
  SetListItems(document.all.favorites_list, favorite_items);
  
  // set selection to newly added item in the list
  SetListBox(document.all.favorites_list, text);
  
  // clear New Search Term text box
  SetTextBox(document.all.new_search_term, "");
}

function AddItem(new_item)
{
  var num_items = favorite_items.length;
  favorite_items[num_items] = new_item;
  MATH_SortIgnoreQuotes(favorite_items);
}

function RemoveFavorite()
{
  var item_name = GetListBox(document.all.favorites_list);
  
  var item_index = GetListSelection(document.all.favorites_list);
  var num_items = GetNumOfListItems(document.all.favorites_list);
  
  // if selected (and will be deleted) one is the last one,
  // select new last one in the list
  if(item_index == (num_items - 1))
	item_index--;
  
  RemoveItem(item_name);
  
  SetListItems(document.all.favorites_list, favorite_items);  
  SetListSelection(document.all.favorites_list, item_index);
}

function RemoveItem(name)
{
  var new_items = new Array();
  var count = 0;
  
  var len = favorite_items.length; 
  for(var i = 0; MATH_Lt(i, len); i++)
  {
    if(favorite_items[i] == name)
	  continue;
	new_items[count++] = favorite_items[i];
  }
  
  favorite_items = new_items;
}

function CreateNewSearchTerm(length)
{
  document.all.new_search_term_area.innerHTML =
    '<input type="text" name="new_search_term" size="35" maxlength="' + length + '"/>';
}
</script>

<script language="JavaScript" for="window" event="onload()">
var args = window.dialogArguments.split(',');

// maxlength passed as args[0]
CreateNewSearchTerm(args[0]);

// search for text passed as args[1]
document.all.new_search_term.focus();
SetTextBox(document.all.new_search_term, args[1]);

ResizeDialog();
LoadFavorites();
UpdateButtonDisplay();
</script>

<script language="JavaScript" for="ok_button" event="onclick()">
SaveFavorites();
window.close();
</script>

<script language="JavaScript" for="cancel_button" event="onclick()">
window.close();
</script>

<script language="JavaScript" for="add_button" event="onclick()">
AddFavorite();
UpdateButtonDisplay();
document.all.new_search_term.focus();
</script>

<script language="JavaScript" for="remove_button" event="onclick()">
RemoveFavorite();
UpdateButtonDisplay();
</script>

<script language="JavaScript" for="new_search_term" event="onkeyup()">
UpdateButtonDisplay();
</script>

<script language="JavaScript" for="new_search_term" event="onkeypress()">
if(event.keyCode == 13)
{
  event.returnValue = false;
  if(document.all.add_button.disabled != true)
  {
    AddFavorite();
    UpdateButtonDisplay();
  }
}
</script>

<script language="JavaScript" for="favorites_list" event="onchange()">
UpdateButtonDisplay();
</script>

<table width="100%" cellpadding="5" cellspacing="5" height="250">
  <tr> 
    <td rowspan="4" width="40%">  <loc id="IDS_EDIT_FAVORITE_TERMS">Favorisierte Suchbegriffe:</loc> <br/>
      <select name="favorites_list" size="16" style="width:215;">
      </select>
    </td>
    <td width="20%" height="50"> 
    </td>
    <td width="40%" height="50">
	</td>
  </tr>
  <tr> 
    <td width="20%" height="25"> 
      <div align="center"> 
        <input type="button" class="button_style1" name="add_button" value="&lt;&lt; Hinzufgen"  loc="value:id=IDS_BUTTON_ADD;style:id=ID_WIDTH_ADD"/>
      </div>
    </td>
    <td width="40%" height="25"><loc id="IDS_EDIT_NEW_TERM">Neuer Suchbegriff:</loc><br/>
	  <span id="new_search_term_area"></span>
      <br/>
	  <br/>
    </td>
  </tr>
  <tr> 
    <td width="20%" height="25"> 
      <div align="center"> 
        <input type="button" class="button_style1" name="remove_button" value="Entfernen &gt;&gt;" loc="value:id=IDS_BUTTON_REMOVE;style:id=ID_WIDTH_REMOVE"/>
      </div>
    </td>
    <td width="40%" height="25"></td>
  </tr>
  <tr> 
    <td width="20%" height="50"></td>
    <td width="40%" height="50"></td>
  </tr>
</table>
<hr width="100%"/>
<table width="100%" border="0" cellpadding="5" cellspacing="5">
  <tr> 
    <td width="45%"> 
      <div align="right">
        <input type="button" class="button_style" name="ok_button" value="OK"  loc="value:id=IDS_BUTTON_OK;style:id=ID_WIDTH_OK"/>
      </div>
    </td>
    <td width="10%"> 
    </td>
    <td width="45%"> 
      <div align="left"> 
        <input type="submit" class="button_style1" name="cancel_button" value="Abbrechen"  loc="value:id=IDS_BUTTON_CANCEL;style:id=ID_WIDTH_CANCEL"/>
      </div>
    </td>
  </tr>
</table>
</body>
</html>
