//////////////////////////////////////////////////////////////////////////
// Cookbook page                                                        //
//////////////////////////////////////////////////////////////////////////

// Cookbook mouseover
function highlight_cookbook(line,state) {
  el = $(line.id);
  (state == 'on') ? el.addClassName('cookbook_row_mo') : el.removeClassName('cookbook_row_mo');
}

// Cookbook navigation
function change_cookbook_folder(el,state) {
  if ( (window.XMLHttpRequest) || (window.ActiveXObject) ) {
    var folder_selected = document.frm_cookbook_folder.cookbook_folder[document.frm_cookbook_folder.cookbook_folder.selectedIndex].value;
    cookbook_nav(folder_selected,1);
  }
  else {
    var folder_selected = frm_cookbook_folder.cookbook_folder.selectedIndex;
    location = '/leden/kookboek.asp?folder=' + folder_selected;
  }
}

function cookbook_nav(folder,page) {
  if ( (window.XMLHttpRequest) || (window.ActiveXObject) ) {
    var xml_page = '/includes/ajax/ajax_cookbook_nav.asp?folder=' + folder + '&p=' + page;
    new Ajax.Request ( xml_page, { method: 'get', parameters: '', onComplete: processCookbookNav } );
  }
  else {
    location = '/leden/kookboek.asp?folder=' + folder + '&p=' + page;
  }
}

function processCookbookNav(request) {

  var el_cookbook = $('tbl_cookbook').getElementsByTagName("TBODY")[0];
  var items = request.responseXML.getElementsByTagName("recipe");

  //Delete all current table rows
  var array_rows = el_cookbook.rows;
  for (var i = array_rows.length-1; i >= 0; i--) {
    el_cookbook.removeChild(array_rows[i]);
  }

  //Add rows for all recipes
  if ( items.length != 0 ) {

    var new_row;
    var nc = new Array();
    var str_recipe;
    var str_recipe_props;
    var str_recipe_fav;
    var str_btn_edit;

    for (var i = 0; i < items.length; i++) {

      recipe = items[i].childNodes;

  		rec_id              = recipe[0].childNodes[0].nodeValue;
  		rec_title           = recipe[1].childNodes[0].data;
  		rec_course          = recipe[2].childNodes[0].data;
  		rec_type            = recipe[3].childNodes[0].data;
  		rec_kitchen         = recipe[4].childNodes[0].data;
  		rec_time            = recipe[5].childNodes[0].data;
  		rec_source          = recipe[6].childNodes[0].data;
  		rec_visual_small    = recipe[7].childNodes[0].data;
  		rec_fav             = recipe[8].childNodes[0].data;
  		rec_status          = recipe[9].childNodes[0].data;
      rec_virtualurl      = recipe[10].childNodes[0].data;

  		rec_title  = rec_title.replace(/'/g, "'");

      str_recipe_props =
        rec_course.toLowerCase()
        + '<span>&#149;</span>' + rec_type.toLowerCase()
        + '<span>&#149;</span>' + rec_kitchen.toLowerCase()
        + '<span>&#149;</span>' + rec_time.toLowerCase()
        + '<span>&#149;</span>' + rec_source;

      str_recipe =
          '<div class="cookbook_line_title_props">'
        + '  <div class="cookbook_line_title"><a href="' + rec_virtualurl + '">' + rec_title + '</a></div>'
        + '  <div class="cookbook_line_props"><a href="' + rec_virtualurl + '">' + str_recipe_props + '</a></div>'
        + '</div>';

      str_recipe_fav = '<span class="fav_no"><img src="/i/elements/members/icon_nonfav.gif" alt="plaats dit recept bij mijn favoriete recepten" /></span>';
       if ( rec_fav == '1' ) { str_recipe_fav = '<span class="fav_yes"><img src="/i/elements/members/icon_fav.gif" alt="verwijder dit recept uit mijn favoriete recepten" /></span>' }

      new_row = document.createElement("tr");
      new_row.id = 'cookbook_row_' + rec_id;

      new_row.onmouseover = function() { highlight_cookbook(this, 'on'); }
      new_row.onmouseout = function() { highlight_cookbook(this, 'off'); }

      for (var c=1; c<=9; c++) { nc[c] = document.createElement("td"); }

      nc[1].className = 'side_left';
      nc[2].className = 'kb_img';
      nc[3].className = 'side';
      nc[4].className = 'kb_title';
      nc[5].className = 'side';
      nc[6].className = 'kb_fav';
      nc[7].className = 'side';
      nc[8].className = 'kb_action';
      nc[9].className = 'side_right';

      nc[4].colSpan = 2;

      nc[2].innerHTML = '<a href="' + rec_virtualurl + '"><img src="' + rec_visual_small + '" /></a>';
      nc[4].innerHTML = str_recipe;
      nc[6].innerHTML = '<div id="cookbook_fav_' + rec_id + '" onclick="cookbook_make_fav(' + rec_id + ');" class="cookbook_fav">' + str_recipe_fav + '<div>';
      nc[8].innerHTML = '<img src="/i/elements/buttons/btn_delete.gif" alt="verwijder dit recept uit mijn kookboek" onclick="cookbook_delete_recipe(' + rec_id + ');" />';

      // Row color
      str_row_class = 'cookbook_row';
      if ( (i/2) == parseInt(i/2) ) { str_row_class = 'cookbook_row_alt' }
      new_row.className = str_row_class;

      for (var c=1; c<=9; c++) { new_row.appendChild(nc[c]); }
      el_cookbook.appendChild(new_row);

    }

  }
  else {

    new_row = document.createElement("tr");
    new_cell_1 = document.createElement("td");
    new_cell_2 = document.createElement("td");
    new_cell_3 = document.createElement("td");

    new_cell_2.colSpan = 8;

    new_cell_1.className = 'side_left';
    new_cell_2.className = 'kb_no_recipes';
    new_cell_3.className = 'side_right';

    new_cell_2.innerHTML = '<div>nog geen recepten...</div>';

    new_row.appendChild(new_cell_1);
    new_row.appendChild(new_cell_2);
    new_row.appendChild(new_cell_3);
    el_cookbook.appendChild(new_row);

  }

  var nav = request.responseXML.getElementsByTagName("nav");
  var nav_items = nav[0].childNodes;

	folder = nav_items[0].childNodes[0].nodeValue;
	page_count = nav_items[1].childNodes[0].nodeValue;
	page_current = nav_items[2].childNodes[0].nodeValue;
  cookbook_nr_of_recipes_per_page = nav_items[3].childNodes[0].nodeValue;
  cookbook_nr_of_nav_pages = nav_items[4].childNodes[0].nodeValue;
  cookbook_recipes_total_count = nav_items[5].childNodes[0].nodeValue;

  /////////////////////////////////////////////
  // Navigation buttons: start               //
  /////////////////////////////////////////////

  var str_nav = '';
  var current_page_range = 0;
  var page_last = 0;
  var page_first = 0;
  var recipe_first = 0;
  var recipe_last = 0;
  var i_page_current = page_current;

  if ( page_count >= 2 ) {

    current_page_range = Math.ceil((i_page_current)/cookbook_nr_of_nav_pages);
    page_last = current_page_range * cookbook_nr_of_nav_pages;
    page_first = (current_page_range*cookbook_nr_of_nav_pages) - (cookbook_nr_of_nav_pages-1);
    if ( page_last > page_count ) { page_last = page_count };

    recipe_first = ((i_page_current-1) * cookbook_nr_of_recipes_per_page) + 1;
    recipe_last = recipe_first + (cookbook_nr_of_recipes_per_page-1);
    if ( (recipe_first + items.length) < recipe_last ) { recipe_last = recipe_first + items.length -1 }


    if ( page_first > cookbook_nr_of_nav_pages ) {

      str_nav +=
        '<a href="/leden/kookboek.asp?folder=' + folder + '&p=' + parseInt(page_first-1) + '" onclick="cookbook_nav(' + folder + ',' + parseInt(page_first-1) + ');return false;">'
        + '<div class="page_prev_next"><img src="/i/elements/buttons/page_prev.gif" /></div>'
        + '</a>';

    }
    else {
      str_nav += '<div class="page_prev_next"><img src="/i/elements/buttons/page_prev_disabled.gif" /></div>';
    }


    for (var i_page = page_first; i_page <= page_last; i_page++) {
      if ( i_page == i_page_current ) {
        str_nav += '<div class="page_current">' + i_page + '</div>';
      }
      else {
        str_nav += '<a href="/leden/kookboek.asp?folder=' + folder + '&p=' + i_page + '" onclick="cookbook_nav(' + folder + ',' + i_page + ');return false;"><div>' + i_page + '</div></a>';
      }
    }

    if ( page_last < page_count ) {

      str_nav +=
        '<a href="/leden/kookboek.asp?folder=' + folder + '&p=' + parseInt(page_last+1) + '" onclick="cookbook_nav(' + folder + ',' + parseInt(page_last+1) + ');return false;">'
        + '<div class="page_prev_next"><img src="/i/elements/buttons/page_next.gif" /></div>'
        + '</a>';

    }
    else {
      str_nav += '<div class="page_prev_next"><img src="/i/elements/buttons/page_next_disabled.gif" /></div>';
    }

  }
  else {
    recipe_first = 1;
    recipe_last = cookbook_recipes_total_count;
  }


  if ( recipe_last > 1 ) {
    str_nav += '<div class="cookbook_nav_recipe_nrs">recepten ' + recipe_first + ' t/m ' + recipe_last + ' van ' + cookbook_recipes_total_count + '</div>' }
  else if ( recipe_last == 1 ) {
    str_nav += '<div class="cookbook_nav_recipe_nrs">recept 1 van 1</div>' }
  else if ( recipe_last == 0 ) {
    str_nav += '<div class="cookbook_nav_recipe_nrs">0 recepten</div>' }


  var el_cookbook_navbar = $('cookbook_navbar_inner');
  el_cookbook_navbar.innerHTML = str_nav;

  /////////////////////////////////////////////
  // Navigation buttons: end
  /////////////////////////////////////////////

}

// Cookbook recipe deleting
function cookbook_delete_recipe( recipe_id ) {
  new Ajax.Request ( '/includes/ajax/ajax_cookbook_delete_recipe.asp', { method: 'get', parameters: 'recipeid=' + recipe_id, onComplete: processCookbookDelete } );
}

function processCookbookDelete(request) {
  var recipe_id = request.responseXML.getElementsByTagName("recipeid")[0].firstChild.data;
  var recipecount = request.responseXML.getElementsByTagName("recipecount")[0].firstChild.data;
  var result = request.responseXML.getElementsByTagName("result")[0].firstChild.data;
  if ( result == 1 ) {
    var el_cookbook = $('tbl_cookbook').getElementsByTagName("TBODY")[0];
    var el_cookbook_row_to_delete = $('cookbook_row_' + recipe_id)
    el_cookbook.removeChild(el_cookbook_row_to_delete);
  }
  $('cookbook_count').update('(' + recipecount + ')');
  cookbook_redo_rowcolors();
}

function cookbook_redo_rowcolors() {
  var arr_rows = $('tbl_cookbook').getElementsByTagName("TBODY")[0].rows;
  for (var i = arr_rows.length-1; i >= 0; i--) {
    arr_rows[i].className = ((i/2) == parseInt(i/2)) ? 'cookbook_row_alt' : 'cookbook_row';
  }
}

//////////////////////////////////////////////////////////////////////////
// Add/edit recipe page                                                 //
//////////////////////////////////////////////////////////////////////////

// ajax_recipe_add_custom
function ajax_recipe_add_custom() {

  var frm = document.frm_recipe_add_custom;
  var frm_f = frm.elements;

  $("btnsubmit_holder").hide();
  $("btnsubmit_holder_wait").show();

  var el_field, el_field_id;
  var el_field_value = '';
  var el_field_value, el_field_datatype, el_field_required;
  var field_errors = 0;
  var field_errors_total = 0;

  // check all fields, except ingredient fields
  for (var i = 0; i < frm_f.length; i++) {

    el_field = frm_f[i];
    el_field_id = frm_f[i].id;

    if ( (el_field_id.indexOf('var_', 0) == 0) && (el_field_id.indexOf('var_rec_ingr_', 0) == -1) ) {

      el_field_value = frm[el_field_id].value;
      el_field_required = frm['required_' + el_field_id].value;
      el_field_datatype = frm['datatype_' + el_field_id].value;

      field_errors = 0;

      if ( (el_field_required == 1) && (trim(el_field_value) == '') ) { field_errors++; }

      if ( field_errors == 0 ) {
        $(el_field_id.replace('var_','lbl_')).className = '';
        $(el_field_id).removeClassName('frm_error');
      }
      else {
        field_errors_total++;
        $(el_field_id.replace('var_','lbl_')).addClassName('lbl_error');
        $(el_field_id).addClassName('frm_error');
      }

    }

  }


  // check all ingredient fields
  var el_ingredient_top = frm['ingr_top'].value;
  for (var i = 0; i <= el_ingredient_top; i++) {

    var str_all_ingredients = '';
    if ( frm_f['var_rec_ingr_' + i] ) {
      el_field = frm_f['var_rec_ingr_' + i];
      el_field_id = frm_f['var_rec_ingr_' + i].id;
      if ( trim(el_field.value) == '' ) {
        field_errors_total++;
        $(el_field_id.replace('var_','lbl_')).addClassName('lbl_error');
        $(el_field_id).addClassName('frm_error');
      }
      else {
        $(el_field_id.replace('var_','lbl_')).className = '';
        $(el_field_id).removeClassName('frm_error');
      }
    }

  }

  if ( field_errors_total == 0 ) {
    frm.submit();
  }
  else {
    $("btnsubmit_holder").show();
    $("btnsubmit_holder_wait").hide();
    el_div_error = $("frm_recipe_add_custom_errors");
    el_div_error.innerHTML = 'Niet alle verplichte velden zijn (correct) ingevuld.';
    el_div_error.show();
  }

}

function recipe_add_custom_add_ingr() {

  var el_form = document.frm_recipe_add_custom;
  var el_ingr_count = el_form.ingr_count;
  var el_ingr_top = el_form.ingr_top;

  var el_ingredients = $('tbl_recipe_add_custom_ingredients').getElementsByTagName("TBODY")[0];
  var array_ingr_rows = el_ingredients.rows;

  var ingr_count = el_ingr_count.value;
  var ingr_top = el_ingr_top.value;

  ingr_count++;
  ingr_top++;
  el_ingr_count.value = ingr_count;
  el_ingr_top.value = ingr_top;

  // add line line
  new_row = document.createElement("tr");
  new_row.id = 'tbl_ingr_line_' + ingr_top;

  var nc = new Array();
  for (var c=1; c<=5; c++) { nc[c] = document.createElement("td"); }

  nc[1].className = 'lbl_sub_ingr';
  nc[2].className = 'ctrl_ingr';
  nc[3].className = 'lbl_btn_ingr lbl_btn_up';
  nc[4].className = 'lbl_btn_ingr lbl_btn_down';
  nc[5].className = 'lbl_btn_ingr lbl_btn_delete';

  nc[1].innerHTML = '<div id="lbl_rec_ingr_' + ingr_top + '">' + ingr_top + '.</div>';
  nc[2].innerHTML = '<input type="text" id="var_rec_ingr_' + ingr_top + '" name="var_rec_ingr_' + ingr_top + '" class="frm_text" value="" size="50" maxlength="250">';
  nc[3].innerHTML = '<img src="/i/elements/buttons/btn_up.gif" onclick="recipe_add_custom_move_ingr(' + ingr_top + ',\'up\');">';
  nc[4].innerHTML = '<img src="/i/elements/buttons/btn_down.gif" onclick="recipe_add_custom_move_ingr(' + ingr_top + ',\'down\');">';
  nc[5].innerHTML = '<img src="/i/elements/buttons/btn_delete.gif" onclick="recipe_add_custom_delete_ingr(' + ingr_top + ');">';

  for (var c=1; c<=5; c++) { new_row.appendChild(nc[c]); }
  el_ingredients.appendChild(new_row);
  recipe_add_custom_rebuild_rows();

}

function recipe_add_custom_delete_ingr( line_to_delete ) {
  var el_ingredients = $('tbl_recipe_add_custom_ingredients').getElementsByTagName("TBODY")[0];
  document.frm_recipe_add_custom['ingr_count'].value--;
  el_ingredients.removeChild($('tbl_ingr_line_' + line_to_delete));
  recipe_add_custom_rebuild_rows();
}

function recipe_add_custom_move_ingr( line_from, dir ) {

  var frm = document.frm_recipe_add_custom;
  var arr_ingr = $('tbl_recipe_add_custom_ingredients').getElementsByTagName("TBODY")[0].rows;
  var el_row_from = $('tbl_ingr_line_' + line_from);
  var el_ingr_from = frm['var_rec_ingr_' + line_from];
  var ingr_from_value = el_ingr_from.value;
  var el_ingr_to;
  var ingr_to_value;
  for (var i = 0; i <= arr_ingr.length-1; i++) {
    if ( arr_ingr[i].id == el_row_from.id ) {
      if ( dir == 'up' ) {
        el_ingr_to = frm['var_rec_ingr_' + arr_ingr[i-1].id.replace('tbl_ingr_line_','')];
      }
      else if ( dir == 'down' ) {
        el_ingr_to = frm['var_rec_ingr_' + arr_ingr[i+1].id.replace('tbl_ingr_line_','')];
      }
    }
  }
  el_ingr_from.value = el_ingr_to.value;
  el_ingr_to.value = ingr_from_value;

}

function recipe_add_custom_rebuild_rows() {

  var el_ingr_order = document.frm_recipe_add_custom['ingr_order'];
  var arr_ingr = $('tbl_recipe_add_custom_ingredients').getElementsByTagName("TBODY")[0].rows;
  var l = '<img src="/i/elements/buttons/';

  for (var i = 0; i <= arr_ingr.length-1; i++) {

    row_id = arr_ingr[i].id;
    row_nr = row_id.replace('tbl_ingr_line_','');
    row_c = arr_ingr[i].cells;

    row_c[0].innerHTML = '<div id="lbl_rec_ingr_' + row_nr + '">' + (i+1) + '.</div>';

    if ( i == 0 ) {
      row_c[2].innerHTML =l + 'btn_up_disabled.gif" />' }
    else {
      row_c[2].innerHTML = l + 'btn_up.gif" onclick="recipe_add_custom_move_ingr(' + row_nr + ',\'up\');" />' }

    if ( i == arr_ingr.length-1 ) {
      row_c[3].innerHTML = l + 'btn_down_disabled.gif" />' }
    else {
      row_c[3].innerHTML = l + 'btn_down.gif" onclick="recipe_add_custom_move_ingr(' + row_nr + ',\'down\');" />' }

    if ( (i == 0) && (arr_ingr.length == 1) ) {
      row_c[4].innerHTML = l + 'btn_delete_disabled.gif" />' }
    else {
      row_c[4].innerHTML = l + 'btn_delete.gif" onclick="recipe_add_custom_delete_ingr(' + row_nr + ');" />' }

  }

}

function recipe_add_custom_submit_to_editors_txt() {
  var el_submit_to_editors = document.frm_recipe_add_custom['rec_submit_to_editors'];
  if ( (el_submit_to_editors.checked == true) ) {
    $('submit_to_editors_txt').className = 'submit_to_editors_txt_active';
  }
}

//////////////////////////////////////////////////////////////////////////
// Weekmenu page                                                        //
//////////////////////////////////////////////////////////////////////////

// Weekmenu mouseover
function highlight_weekmenu(line,state) {
  el = $(line.id);
  (state == 'on') ? el.addClassName('table_row_mo') : el.removeClassName('table_row_mo');
}

// Weekmenu recipe deleting (single)
function weekmenu_delete( day ) {
  var f_passthrough = function() {
    var memberid = $('member_id').value;
    if ( $("tbl_weekmenu") ) {
      new Ajax.Request ( '/includes/ajax/ajax_weekmenu_delete_recipe.asp', { method: 'get', parameters: 'memberid=' + memberid + '&day=' + day, onComplete: processWeekmenuDelete } );
    }
  };
  var lb_head = 'Recept verwijderen uit je weekmenu';
  var lb_txt = 'Om een recept uit je weekmenu te verwijderen moet je eerst zijn ingelogd.';
  tryMemberAction(true,f_passthrough,lb_head,lb_txt);
}

function processWeekmenuDelete(request) {
  var r = request.responseXML;
  var result      = r.getElementsByTagName("result")[0].firstChild.data;
  var weekmenuday = r.getElementsByTagName("weekmenuday")[0].firstChild.data;
  var recipecount = r.getElementsByTagName("recipecount")[0].firstChild.data;
  if ( result == 1 ) {
    var arr_rows = $('tbl_weekmenu').getElementsByTagName("TBODY")[0].rows;
    var rc_del = arr_rows[weekmenuday].cells;
    rc_del[2].innerHTML = '<div>&nbsp;</div>';
    rc_del[2].innerHTML = '<div>&nbsp;</div>';
    rc_del[4].innerHTML = '';
    rc_del[8].innerHTML = '<img src="/i/elements/buttons/btn_delete_disabled.gif" />';
  }
  $('weekmenu_count').update('(' + recipecount + ')');
}

// Weekmenu recipe deleting (all)
function weekmenu_delete_all() {
  var f_passthrough = function() {
    var memberid = $('member_id').value;
    if ( $("tbl_weekmenu") ) {
      new Ajax.Request ( '/includes/ajax/ajax_weekmenu_delete_all.asp', { method: 'get', parameters: 'memberid=' + memberid, onComplete: processWeekmenuDeleteAll } );
    }
  };
  var lb_head = 'Alle recept verwijderen uit je weekmenu';
  var lb_txt = 'Om alle recepten uit je weekmenu te verwijderen moet je eerst zijn ingelogd.';
  tryMemberAction(true,f_passthrough,lb_head,lb_txt);
}

function processWeekmenuDeleteAll(request) {
  var result = request.responseXML.getElementsByTagName("result")[0].firstChild.data;
  if ( result == 1 ) {
    var arr_rows = $('tbl_weekmenu').getElementsByTagName("TBODY")[0].rows;
    var rc_del;
    for (var i = 0; i <= arr_rows.length-1; i++) {
      rc_del = arr_rows[i].cells;
      rc_del[2].innerHTML = '<div>&nbsp;</div>';
      rc_del[4].innerHTML = '';
      rc_del[8].innerHTML = '<img src="/i/elements/buttons/btn_delete_disabled.gif" />';
    }
  }
  $('weekmenu_count').update('(0)');
}

// Weekmenu recipe moving
function weekmenu_move( day, dir ) {
  var f_passthrough = function() {
    var memberid = $('member_id').value;
    new Ajax.Request ( '/includes/ajax/ajax_weekmenu_move_recipe.asp', { method: 'get', parameters: 'memberid=' + memberid + '&day=' + day + '&dir=' + dir, onComplete: processWeekmenuMove } );
  };
  var lb_head = 'Recept verplaatsen in je weekmenu';
  var lb_txt = 'Om een recept in je weekmenu te verplaatsen moet je eerst zijn ingelogd.';
  tryMemberAction(true,f_passthrough,lb_head,lb_txt);
}

function processWeekmenuMove(request) {

  var r = request.responseXML;
  var result          = r.getElementsByTagName("result")[0].firstChild.data;
  var weekmenudayfrom = r.getElementsByTagName("from")[0].firstChild.data;
  var weekmenudayto   = r.getElementsByTagName("to")[0].firstChild.data;

  if ( result == 1 ) {
    var el_weekmenu = $('tbl_weekmenu').getElementsByTagName("TBODY")[0];
    var array_rows  = el_weekmenu.rows;
    var row_from        = array_rows[weekmenudayfrom];
    var row_from_cells  = row_from.cells;
    var from_img        = row_from_cells[2].innerHTML;
    var from_title      = row_from_cells[4].innerHTML;
    var row_to          = array_rows[weekmenudayto];
    var row_to_cells    = row_to.cells;
    var to_img          = row_to_cells[2].innerHTML;
    var to_title        = row_to_cells[4].innerHTML;

    var l = '<img src="/i/elements/buttons/';

    row_to_cells[2].innerHTML = from_img;
    row_to_cells[4].innerHTML = from_title;

    if ( from_title != '' ) {
      row_to_cells[8].innerHTML = l + 'btn_delete.gif" alt="verwijder dit recept uit mijn weekmenu" onclick="weekmenu_delete(' + weekmenudayto + ');" />'; }
    else {
      row_to_cells[8].innerHTML = l + 'btn_delete_disabled.gif" />'; }

    row_from_cells[2].innerHTML = to_img;
    row_from_cells[4].innerHTML = to_title;

    if ( to_title != '' ) {
      row_from_cells[8].innerHTML = l + 'btn_delete.gif" alt="verwijder dit recept uit mijn weekmenu" onclick="weekmenu_delete(' + weekmenudayfrom + ');" />'; }
    else {
      row_from_cells[8].innerHTML = l + 'btn_delete_disabled.gif" />'; }

  }

}

// Weekmenu mailing
function weekmenu_mail() {
  var f_passthrough = function() {
    ajax_weekmenu_mail_window();
  };
  var lb_head = 'E-mail weekmenu';
  var lb_txt = 'Om je weekmenu naar je vriend(in) te mailen moet je eerst zijn ingelogd.';
  tryMemberAction(true,f_passthrough,lb_head,lb_txt);
}

function ajax_weekmenu_mail_window() {

  var str_header = 'E-mail weekmenu';
  var str_message = '';

 	for(var i=1; i<=5; i++) {
    str_message +=
        '<tr>'
      + '<td class="nr">' + i + '.</td>'
      + '<td class="name"><input type="text" id="friend_name_' + i + '" name="friend_name_' + i + '" class="friend_name" value="" size="8" maxlength="50"></td>'
      + '<td class="mail"><input type="text" id="friend_email_' + i + '" name="friend_email_' + i + '" class="friend_email" value="" size="8" maxlength="50"></td>'
      + '</tr>';
  }

  str_message =
    'Vul de namen en e-mailadressen in van maximaal 5 vriend(inn)en, klik op \'weekmenu versturen\' en je weekmenu wordt direct per e-mail aan hen verstuurd.<br /><br />'
    + '<div id="frm_mailfriend_errors"></div>'
    + '<form id="frm_mailfriend" name="frm_mailtofriend" onsubmit="return false;">'
    + '<table class="tbl_mailfriend">'
    + '<thead>'
    + '<tr>'
    + '  <td class="nr"></td>'
    + '  <td class="name">Naam</td>'
    + '  <td class="mail">E-mailadres</td>'
    + '</tr>'
    + '</thead>'
    + '<tbody>'
    + str_message
    + '<tr>'
    + '  <td colspan="3" class="message_lbl">Persoonlijk bericht</td>'
    + '</tr>'
    + '<tr>'
    + '  <td colspan="3" class="message_txt"><textarea id="message_txt" name="message_txt" cols="30" rows="4"></textarea></td>'
    + '</tr>'
    + '</tbody>'
    + '</table>'
    + '</form>'
    + '  <div class="member_popup_box_login_btn"><input type="image" src="/i/elements/buttons/popup/btn_weekmenu_versturen.gif" id="send" name="send" onclick="ajax_weekmenu_mail_window_check();"></div>'
    ;

  var f_passthrough = function() {
    document.forms["frm_mailfriend"].friend_name_1.focus();
  }
  showMessageBox(str_header,str_message,400,450, f_passthrough);

}

function ajax_weekmenu_mail_window_check() {

  var error_count = 0;
  var frm_mailfriend = document.forms["frm_mailfriend"];
  var el_frm_mailfriend_name;
  var el_frm_mailfriend_email;

  if ( frm_mailfriend.friend_name_1.value == '' ) {
    error_count++; frm_mailfriend.friend_name_1.className = 'friend_name frm_error'; }
  else {
    frm_mailfriend.friend_name_1.className = 'friend_name'; }

  if ( !checkValidMailAddress(frm_mailfriend.friend_email_1.value) ) {
    error_count++; frm_mailfriend.friend_email_1.className = 'friend_email frm_error'; }
  else {
    frm_mailfriend.friend_email_1.className = 'friend_email'; }

 	for(var i=2; i<=5; i++) {

    el_frm_mailfriend_name = frm_mailfriend['friend_name_' + i];
    el_frm_mailfriend_email = frm_mailfriend['friend_email_' + i];

    // missing name
    if ( (el_frm_mailfriend_name.value == '') && (el_frm_mailfriend_email.value != '') ) {
      error_count++; el_frm_mailfriend_name.className = 'friend_name frm_error'; }
    else {
      el_frm_mailfriend_name.className = 'friend_name'; }

    // missing e-mailadres
    if ( (el_frm_mailfriend_name.value != '') && (el_frm_mailfriend_email.value == '') ) {
      error_count++; el_frm_mailfriend_email.className = 'friend_email frm_error'; }
    else {
      el_frm_mailfriend_email.className = 'friend_email'; }

    // incorrect e-mailadres
    if ( (el_frm_mailfriend_email.value != '') && (!checkValidMailAddress(el_frm_mailfriend_email.value)) ) {
      error_count++; el_frm_mailfriend_email.className = 'friend_email frm_error'; }

  }

  if ( error_count == 0 ) {
    ajax_weekmenu_mail();
  }
  else {
    var el_errors = $('frm_mailfriend_errors');
    el_errors.innerHTML = 'Niet alle velden zijn correct ingevuld.<br />Zorg ervoor dat alle e-mailadressen correct zijn en dat je voor elke vriend(in) zowel een naam als een e-mailadres invult.';
    el_errors.style.display = 'block';
  }

}

function ajax_weekmenu_mail() {
  var params = '?go=1&' + $('frm_mailfriend').serialize();
  new Ajax.Request ( '/includes/ajax/ajax_weekmenu_mail.asp', { method: 'post', parameters: params, onComplete: processMailWeekMenu } );
}

function processMailWeekMenu(request) {
  var r = request.responseXML;
  var result = r.getElementsByTagName("result")[0].firstChild.data;
  var friends_count = r.getElementsByTagName("friendcount")[0].firstChild.data;
  var friends = r.getElementsByTagName("friend");
  var str_friends = '';
  if ( friends.length != 0 ) {
    for (var i = 0; i < friends.length; i++) {
      str_friends+= '<br />' + friends[i].firstChild.data;
    }
  }
  var str_header = 'E-mail weekmenu';
  var str_message = '';
  if ( result == 1 ) {
    str_message += 'Je weekmenu is verstuurd aan:<br />' + str_friends;
  }
  else {
    str_message += 'Er is iets misgegaan, probeer het even opnieuw...<br /><br />';
  }
  showMessageBox(str_header,str_message,300,250,null);
}

// Weekmenu adding to shopping list
function weekmenu_add_to_shoppinglist(recipeid) {
  var lb_head = 'Toevoegen aan shopping list';
  var f_passthrough = function() {
    new Ajax.Request ( '/includes/ajax/ajax_weekmenu_add_to_shoppinglist.asp', { method: 'get', parameters: '', onComplete: processWeekmenuAddToShoppinglist } );
  };
  var lb_txt = 'Om de ingredi&euml;nten van de recepten van je weekmenu toe te kunnen voegen aan je shopping list moet je eerst zijn ingelogd.';
  tryMemberAction(true,f_passthrough,lb_head,lb_txt);
}

function processWeekmenuAddToShoppinglist(request) {

  var r = request.responseXML;
  var recipe_added_count      = r.getElementsByTagName("recipe_added_count")[0].firstChild.data;
  var ingredients_count       = r.getElementsByTagName("ingredients_count")[0].firstChild.data;
  var ingredients_added_count = r.getElementsByTagName("ingredients_added_count")[0].firstChild.data;

  var str_header = 'Toegevoegd aan shopping list';
  var str_shoppingitems = 'boodschappen';
  if ( ingredients_count == 1 ) { str_shoppingitems = 'boodschap' }

  var str_ingredient = 'ingredi&euml;nten';
  if ( ingredients_count == 1 ) { str_ingredient = 'ingredi&euml;nt' }

  var str_recipe = 'de ' + recipe_added_count + ' recepten';
  if ( recipe_added_count == 1 ) { str_recipe = 'het recept' }

  var str_message = '';

  str_message +=
    'De ' + ingredients_added_count + ' ingredi&euml;nten van ' + str_recipe + ' in je weekmenu zijn toegevoegd aan je shopping list.<br/>'
    + '<br/>Je shopping list bevat nu ' + ingredients_count + ' ' + str_shoppingitems + '.<br/>'
    + '<br/><a href="/leden/shoppinglist.asp">Klik hier</a> om naar je shopping list te gaan.';

  $('shoppinglist_count').update('(' + ingredients_count + ')');

  showMessageBox(str_header,str_message,300,220,null);

}

//////////////////////////////////////////////////////////////////////////
// Shopping list page                                                    //
//////////////////////////////////////////////////////////////////////////

// shopping list item deleting (single)
function shoppinglist_delete_ingredient( line_id ) {
  new Ajax.Request ( '/includes/ajax/ajax_shoppinglist_delete_ingredient.asp', { method: 'get', parameters: 'linenr=' + line_id, onComplete: processShoppinglistDelete } );
}

function processShoppinglistDelete(request) {

  var r = request.responseXML;
  var line_deleted = r.getElementsByTagName("line_deleted")[0].firstChild.data;
  var linecount = r.getElementsByTagName("linecount")[0].firstChild.data;
  var result = r.getElementsByTagName("result")[0].firstChild.data;

  if ( result == 1 ) {
    var el_shoppinglist = $('tbl_shoppinglist').getElementsByTagName("TBODY")[0];
    var el_shoppinglist_row_to_delete = $('shoppinglist_row_' + line_deleted)
    el_shoppinglist.removeChild(el_shoppinglist_row_to_delete);
  }

  if ( linecount == 0 ) {

    new_row = document.createElement("tr");
    new_row.id = 'shoppinglist_row_0';

    var nc = new Array();
    for (var c=1; c<=10; c++) { nc[c] = document.createElement("td"); }

    nc[1].className = 'side_left';
    nc[2].className = 'bullet';
    nc[3].className = 'shoppinglist_item_empty';
    nc[4].className = 'side';
    nc[5].className = 'shoppinglist_partner';
    nc[6].className = 'side';
    nc[7].className = 'shoppinglist_move';
    nc[8].className = 'side';
    nc[9].className = 'shoppinglist_delete';
    nc[10].className = 'side_right';

    nc[3].innerHTML = 'geen boodschappen';

    for (var c=1; c<=10; c++) { new_row.appendChild(nc[c]); }
    el_shoppinglist.appendChild(new_row);

  }
  $('shoppinglist_count').update('(' + linecount + ')');

}

// shopping list item moving
function shoppinglist_move( itemid, dir ) {
  var memberid = document.frm_member_box.member_id.value;
  if ( memberid == -1 ) {
    var str_action_text = 'Om een recept in je shopping list te verplaatsen moet je eerst zijn ingelogd.';
    showMemberLoginBox(str_action_text, 'ajax_shoppinglist_move:' + memberid, itemid, dir);
  }
  else {
    ajax_shoppinglist_move(memberid, itemid, dir);
  }

}

function ajax_shoppinglist_move( memberid, itemid, dir ) {
  new Ajax.Request ( '/includes/ajax/ajax_shoppinglist_move_line.asp', { method: 'get', parameters: 'memberid=' + memberid + '&itemid=' + itemid + '&dir=' + dir, onComplete: processShoppinglistMove } );
}

function processShoppinglistMove(request) {

  var r = request.responseXML;
  var result    = r.getElementsByTagName("result")[0].firstChild.data;
  var linefrom  = r.getElementsByTagName("from")[0].firstChild.data;
  var lineto    = r.getElementsByTagName("to")[0].firstChild.data;
  var from_orig = r.getElementsByTagName("from_orig")[0].firstChild.data;

  if ( result == 1 ) {

    var el_shoppinglist = $('tbl_shoppinglist').getElementsByTagName("TBODY")[0];
    var array_rows  = el_shoppinglist.rows;

    var lines_found = 0;
    for (var i = array_rows.length-1; i >= 0; i--) {

      if ( array_rows[i].id == 'shoppinglist_row_' + linefrom ) {
        lines_found ++;
        var row_from        = array_rows[i];
        var row_from_cells  = row_from.cells;
        var from_item       = row_from_cells[2].innerHTML;
        var from_partner    = row_from_cells[4].innerHTML;
        var from_move       = row_from_cells[6].innerHTML;
        var from_delete     = row_from_cells[8].innerHTML;
      }
      if ( array_rows[i].id == 'shoppinglist_row_' + lineto ) {
        lines_found ++;
        var row_to          = array_rows[i];
        var row_to_cells    = row_to.cells;
        var to_item         = row_to_cells[2].innerHTML;
        var to_partner      = row_to_cells[4].innerHTML;
        var to_move         = row_to_cells[6].innerHTML;
        var to_delete       = row_to_cells[8].innerHTML;
      }

    }


    // switch then
    if ( lines_found == 2 ) {

      row_from_cells[2].innerHTML = to_item;
      row_from_cells[4].innerHTML = to_partner;
      row_from_cells[6].innerHTML = to_move;
      row_from_cells[8].innerHTML = to_delete;

      row_to_cells[2].innerHTML = from_item;
      row_to_cells[4].innerHTML = from_partner;
      row_to_cells[6].innerHTML = from_move;
      row_to_cells[8].innerHTML = from_delete;

      row_from.id = 'tshoppinglist_row_' + lineto;
      row_to.id = 'shoppinglist_row_' + linefrom;
      row_from.id = 'shoppinglist_row_' + lineto;

    }

  }

}

// shopping list item deleting (all)
function shoppinglist_delete_all() {
   new Ajax.Request ( '/includes/ajax/ajax_shoppinglist_delete_all.asp', { method: 'get', parameters: '', onComplete: processShoppinglistDeleteAll } );
}

function processShoppinglistDeleteAll(request) {

  var result = request.responseXML.getElementsByTagName("result")[0].firstChild.data;

  if ( result == 1 ) {
    var el_shoppinglist = $('tbl_shoppinglist').getElementsByTagName("TBODY")[0];
    var array_rows = el_shoppinglist.rows;
    for (var i = array_rows.length-1; i >= 0; i--) {
      el_shoppinglist.removeChild(array_rows[i]);
    }
  }

  var new_row = document.createElement("tr");
  new_row.id = 'shoppinglist_row_0';

  var nc = new Array();
  for (var c=1; c<=10; c++) { nc[c] = document.createElement("td"); }

  nc[1].className = 'side_left';
  nc[2].className = 'bullet';
  nc[3].className = 'shoppinglist_item_empty';
  nc[4].className = 'side';
  nc[5].className = 'shoppinglist_partner';
  nc[6].className = 'side';
  nc[7].className = 'shoppinglist_move';
  nc[8].className = 'side';
  nc[9].className = 'shoppinglist_delete';
  nc[10].className = 'side_right';

  nc[3].innerHTML = 'geen boodschappen';

  for (var c=1; c<=10; c++) { new_row.appendChild(nc[c]); }
  el_shoppinglist.appendChild(new_row);
  $('shoppinglist_count').update('(0)');

}

// shopping list adding item
function shoppinglist_add_ingredient_custom() {
  var f_passthrough = function() {
    shoppinglist_add_ingredient_window();
  };
  var lb_head = 'Boodschappen toevoegen';
  var lb_txt = 'Om een boodschap aan je shopping list toe te voegen moet je eerst zijn ingelogd.';
  tryMemberAction(true,f_passthrough,lb_head,lb_txt);
}

function shoppinglist_add_ingredient_window() {

  var str_header = 'Boodschappen toevoegen';
  var str_message = '';

 	for(var i=1; i<=5; i++) {
    str_message +=
      '<tr>'
    + '<td class="nr">' + i + '.</td>'
    + '<td><input type="text" id="custom_ingredient_' + i + '" name="custom_ingredient_' + i + '" class="custom_ingredient" value="" size="35" maxlength="230"></td>'
    + '</tr>';
  }

  str_message =
    '<div class="ingredients_header">Je boodschappen</div>'
    + '<div id="add_ingredient_errors"></div>'
    + '<form id="frm_add_ingredient" name="frm_add_ingredient" onsubmit="return false;">'
    + '<table id="tbl_add_ingredient">'
    + '<tbody>'
    + str_message
    + '</tbody>'
    + '</table>'
    + '</form>'
    + '<div class="member_popup_box_login_btn"><input type="image" src="/i/elements/buttons/popup/btn_boodschappen_toevoegen.gif" id="send" name="send" onclick="ajax_add_ingredient_custom();"></div>'
    ;


  var f_passthrough = function() {
    document.forms["frm_add_ingredient"].custom_ingredient_1.focus();
  };

  showMessageBox(str_header,str_message,320,280, f_passthrough);

}

// shopping list adding item
function ajax_add_ingredient_custom() {

  var frm = document.forms["frm_add_ingredient"];

  var item_text =
    frm.custom_ingredient_1.value
    + frm.custom_ingredient_2.value
    + frm.custom_ingredient_3.value
    + frm.custom_ingredient_4.value
    + frm.custom_ingredient_5.value;

  var item_text_ok = true;

  item_text = trim(item_text);
  if ( item_text.length == 0 ) { item_text_ok = false }

  if ( item_text_ok != true ) {
    var el_add_ingredient_errors = $('add_ingredient_errors');
    el_add_ingredient_errors.innerHTML = 'De regels met je boodschappen bevat geen of onvoldoende tekst...';
    el_add_ingredient_errors.style.display = 'block';
    return false;
  }

  var params = '?go=1&' + $('frm_add_ingredient').serialize();
  new Ajax.Request ( '/includes/ajax/ajax_shoppinglist_add_ingredient_custom.asp', { method: 'post', parameters: params, onComplete: processAddIngredientCustom } );

}

function processAddIngredientCustom(request) {

  var result = request.responseXML.getElementsByTagName("result")[0].firstChild.data;

  var str_header = 'Boodschap toevoegen';
  var str_message = '';

  if ( result == 1 ) {

    var item_id = request.responseXML.getElementsByTagName("item_id")[0].firstChild.data;
    var item_text = request.responseXML.getElementsByTagName("item_text")[0].firstChild.data;
    var line_count = request.responseXML.getElementsByTagName("line_count")[0].firstChild.data;

    // delete 'no groceries' line
    var el_shoppinglist = $('tbl_shoppinglist').getElementsByTagName("TBODY")[0];
    var array_rows = el_shoppinglist.rows;
    if ( array_rows[0].id == 'shoppinglist_row_0' ) { el_shoppinglist.removeChild(array_rows[0]) }

    var items = request.responseXML.getElementsByTagName("item_id");
    var item_texts = request.responseXML.getElementsByTagName("item_text");

    if ( items.length != 0 ) {
      for (var i = 0; i < items.length; i++) {

        item_id     = items[i].firstChild.data;
        item_text   = item_texts[i].firstChild.data;

        // add line line
        new_row = document.createElement("tr");
        new_row.id = 'shoppinglist_row_' + item_id;

        var nc = new Array();
        for (var c=1; c<=10; c++) { nc[c] = document.createElement("td"); }

        nc[1].className = 'side_left';
        nc[2].className = 'bullet';
        nc[3].className = 'shoppinglist_item';
        nc[4].className = 'side';
        nc[5].className = 'shoppinglist_partner';
        nc[6].className = 'side';
        nc[7].className = 'shoppinglist_move';
        nc[8].className = 'side';
        nc[9].className = 'shoppinglist_delete';
        nc[10].className = 'side_right';

        nc[2].innerHTML = '<div>&#149;</div>';
        nc[3].innerHTML = item_text;

        nc[7].innerHTML =
          '<div>'
          + '<img src="/i/elements/buttons/btn_up.gif" alt="verplaats deze boodschap naar boven" class="move_1st" onclick="shoppinglist_move(' + item_id + ',\'up\');" />'
          + '<img src="/i/elements/buttons/btn_down.gif" alt="verplaats deze boodschap naar onder" onclick="shoppinglist_move(' + item_id + ',\'down\');" />'
          + '</div>';

        nc[9].innerHTML = '<img src="/i/elements/buttons/btn_delete.gif" alt="verwijder deze boodschap" onclick="shoppinglist_delete_ingredient(' + item_id + ');" />';

        for (var c=1; c<=10; c++) { new_row.appendChild(nc[c]); }
        el_shoppinglist.appendChild(new_row);

      }
    }

    str_message += ((items.length > 1) ? 'De boodschappen zijn' : 'De boodschap is') + ' toegevoegd aan je shopping list<br /><br />';

  }
  else {
    str_message += 'Er is iets misgegaan, probeer het even opnieuw...<br /><br />';
  }

  $('shoppinglist_count').update('(' + line_count + ')');
  showMessageBox(str_header,str_message,320,180,null);

}

// shopping list adding/editing notes
function shoppinglist_edit_note( action ) {
  var f_passthrough = function() {
    ajax_shoppinglist_edit_note(action);
  };
  var lb_head = 'Notitie toevoegen';
  var lb_txt = 'Om een notitie aan je shopping list toe te kunnen voegen moet je eerst zijn ingelogd.';
  if ( action == 'edit' ) {
    lb_head = 'Notitie bewerken';
    lb_txt = 'Om je notitie te kunnen bewerken moet je eerst zijn ingelogd.';
  }
  tryMemberAction(true,f_passthrough,lb_head,lb_txt);
}

function ajax_shoppinglist_edit_note( action ) {

  var memberid = document.frm_member_box.member_id.value;

  var str_header = 'Notitie toevoegen';
  var str_message = '';
  var str_message_add_to_shoppinglist = '';
  var str_note_text = '';
  var str_note_text_intro = 'Type hier je notitie';
  var str_action = '<img src="/i/elements/buttons/popup/btn_notitie_toevoegen.gif" />';
  var note_max_length = 1500;

  if ( action == 'edit' ) {
    str_header = 'Notitie bewerken';
    str_action = '<img src="/i/elements/buttons/popup/btn_notitie_bewerken.gif" />';
    str_note_text_intro = 'Wijzig hier je notitie';
    str_note_text = $('shoppinglist_notes_holder_inner').innerHTML;
    str_note_text = str_note_text.replace(/<br \/>/g, '\n');
    str_note_text = str_note_text.replace(/<BR>/g, '\n');
    str_note_text = str_note_text.replace(/<br>/g, '\n');
  }

  var note_max_length_left = note_max_length - (str_note_text.length) ;

  str_message +=
    str_message_add_to_shoppinglist
    + '<div class="popup_shoppinglist_note_intro">' + str_note_text_intro + '</div>'
    + '<form id="frm_popup_shoppinglist_note" name="frm_popup_shoppinglist_note" onsubmit="return false;">'
    + '<table id="tbl_popup_shoppinglist_note">'
    + '<tr>'
    + '  <td><textarea id="popup_shoppinglist_note_text" name="popup_shoppinglist_note_text" cols="50" rows="5" onKeyDown="limitNrOfChars(document.frm_popup_shoppinglist_note.popup_shoppinglist_note_text,\'popup_shoppinglist_note_text_chars\',' + note_max_length + ');" onKeyUp="limitNrOfChars(document.frm_popup_shoppinglist_note.popup_shoppinglist_note_text,\'popup_shoppinglist_note_text_chars\',' + note_max_length + ');">' + str_note_text + '</textarea></td>'
    + '</tr>'

    + '<tr>'
    + '  <td><div id="popup_shoppinglist_note_text_chars">' + note_max_length_left + ' karakters over</div></td>'
    + '</tr>'

    + '<input type="hidden" id="memberid" name="memberid" value="' + memberid + '">'
    + '<input type="hidden" id="action" name="action" value="' + action + '">'
    + '</table>'
    + '</form">'
    + '<div class="popup_shoppinglist_note_go"><a href="javascript:ajax_add_shoppinglist_note();">' + str_action + '</a></div>'
    ;

  var f_passthrough = function() {
    document.frm_popup_shoppinglist_note.popup_shoppinglist_note_text.focus();
  }
  showMessageBox(str_header,str_message,380,280,f_passthrough);

}

function ajax_add_shoppinglist_note() {
  var params = '?go=1&' + $('frm_popup_shoppinglist_note').serialize();
  new Ajax.Request ( '/includes/ajax/ajax_shoppinglist_save_notes.asp', { method: 'post', parameters: params, onComplete: processAddAddShoppinglistNote } );
}

function processAddAddShoppinglistNote(request) {

  var r = request.responseXML;
  var respons = r.getElementsByTagName("respons")[0].firstChild.data;
  var noteaction = r.getElementsByTagName("action")[0].firstChild.data;
  var notetext = r.getElementsByTagName("notestext")[0].firstChild.data;

  if ( notetext == '$emptystring$' ) { notetext = '' }

  var str_header = 'Notitie toegevoegd';
  var str_message = '';
  var str_message = 'Je notitie is toegevoegd aan je shopping list.';

  if ( noteaction == 'edit') {
    str_header = 'Notitie bewerkt';
    str_message = 'Je gewijzigde notitie is opgeslagen.';
  }

  if ( respons != 0 ) {
    var el_recipe_note_line = $('shoppinglist_notes_holder_inner');
    notetext = notetext.replace(/\n/g, "<br />");
    el_recipe_note_line.innerHTML = notetext;
    if ( noteaction == 'add') {
      var el_recipe_note_add = $('shoppinglist_notes_btn_holder');
      var el_recipe_note_add_inner = el_recipe_note_add.innerHTML;
      el_recipe_note_add_inner = el_recipe_note_add_inner.replace('btn_sl_notitie_toevoegen.gif' , 'btn_sl_notitie_bewerken.gif');
      el_recipe_note_add_inner = el_recipe_note_add_inner.replace("'add'" , "'edit'");
      el_recipe_note_add_inner = el_recipe_note_add_inner.replace("'add'" , "'edit'");
      el_recipe_note_add.innerHTML = el_recipe_note_add_inner;
    }
  }
  else {
    str_message +=
      'Je sessie is (toevallig) verlopen tijdens het toevoegen van je notitie.<br/><br/>'
      + 'Log even opnieuw in en je kunt het recept alsnog voorzien van een notitie.<br/>';
  }
  showMessageBox(str_header,str_message,230,110,null);

}

// shopping list mailing
function shoppinglist_mail() {
  var f_passthrough = function() {
    ajax_shoppinglist_mail_window();
  };
  var lb_head = 'E-mail shopping list';
  var lb_txt = 'Om je shopping list naar je vriend(in) te mailen moet je eerst zijn ingelogd.';
  tryMemberAction(true,f_passthrough,lb_head,lb_txt);
}

function ajax_shoppinglist_mail_window() {

  var str_header = 'E-mail shopping list';
  var str_message = '';

 	for(var i=1; i<=5; i++) {
    str_message +=
      '<tr>'
    + '<td class="nr">' + i + '.</td>'
    + '<td class="name"><input type="text" id="friend_name_' + i + '" name="friend_name_' + i + '" class="friend_name" value="" size="8" maxlength="50"></td>'
    + '<td class="mail"><input type="text" id="friend_email_' + i + '" name="friend_email_' + i + '" class="friend_email" value="" size="8" maxlength="50"></td>'
    + '</tr>';
 	}

  str_message =
    'Vul de namen en e-mailadressen in van maximaal 5 vriend(inn)en, klik op \'shopping list versturen\' en je shopping list wordt direct per e-mail aan hen verstuurd.<br /><br />'
    + '<div id="frm_mailfriend_errors"></div>'
    + '<form id="frm_mailfriend" name="frm_mailtofriend" onsubmit="return false;">'
    + '<table class="tbl_mailfriend">'
    + '<thead>'
    + '<tr>'
    + '  <td class="nr"></td>'
    + '  <td class="name">Naam</td>'
    + '  <td class="mail">E-mailadres</td>'
    + '</tr>'
    + '</thead>'
    + '<tbody>'
    + str_message
    + '<tr>'
    + '  <td colspan="3" class="message_lbl">Persoonlijk bericht</td>'
    + '</tr>'
    + '<tr>'
    + '  <td colspan="3" class="message_txt"><textarea id="message_txt" name="message_txt" cols="30" rows="4"></textarea></td>'
    + '</tr>'
    + '</tbody>'
    + '</table>'
    + '  </form>'
    + '  <div class="member_popup_box_login_btn"><input type="image" src="/i/elements/buttons/popup/btn_shoppinglist_versturen.gif" id="send" name="send" onclick="ajax_shoppinglist_mail_window_check();"></div>'
    ;

  var f_passthrough = function() {
    document.forms["frm_mailfriend"].friend_name_1.focus();
  };
  showMessageBox(str_header,str_message,400,450,f_passthrough);

}

function ajax_shoppinglist_mail_window_check() {

	//toggleMessageBoxWaitMode('on');

  var error_count = 0;
  var frm_mailfriend = document.forms["frm_mailfriend"];
  var el_frm_mailfriend_name;
  var el_frm_mailfriend_email;

  if ( frm_mailfriend.friend_name_1.value == '' ) {
    error_count++; frm_mailfriend.friend_name_1.className = 'friend_name frm_error'; }
  else {
    frm_mailfriend.friend_name_1.className = 'friend_name'; }

  if ( !checkValidMailAddress(frm_mailfriend.friend_email_1.value) ) {
    error_count++; frm_mailfriend.friend_email_1.className = 'friend_email frm_error'; }
  else {
    frm_mailfriend.friend_email_1.className = 'friend_email'; }

 	for(var i=2; i<=5; i++) {

    el_frm_mailfriend_name = frm_mailfriend['friend_name_' + i];
    el_frm_mailfriend_email = frm_mailfriend['friend_email_' + i];

    // missing name
    if ( (el_frm_mailfriend_name.value == '') && (el_frm_mailfriend_email.value != '') ) {
      error_count++; el_frm_mailfriend_name.className = 'friend_name frm_error'; }
    else {
      el_frm_mailfriend_name.className = 'friend_name'; }

    // missing e-mailadres
    if ( (el_frm_mailfriend_name.value != '') && (el_frm_mailfriend_email.value == '') ) {
      error_count++; el_frm_mailfriend_email.className = 'friend_email frm_error'; }
    else {
      el_frm_mailfriend_email.className = 'friend_email'; }

    // incorrect e-mailadres
    if ( (el_frm_mailfriend_email.value != '') && (!checkValidMailAddress(el_frm_mailfriend_email.value)) ) {
      error_count++; el_frm_mailfriend_email.className = 'friend_email frm_error'; }

  }

  //alert('errors: ' + error_count);

  if ( error_count == 0 ) {
    ajax_shoppinglist_mail();
  }
  else {
    var el_errors = $('frm_mailfriend_errors');
    el_errors.innerHTML = 'Niet alle velden zijn correct ingevuld.<br />Zorg ervoor dat alle e-mailadressen correct zijn en dat je voor elke vriend(in) zowel een naam als een e-mailadres invult.';
    el_errors.style.display = 'block';
	  //toggleMessageBoxWaitMode('off');
  }


}

function ajax_shoppinglist_mail() {
  var params = '?go=1&' + $('frm_mailfriend').serialize();
  new Ajax.Request ( '/includes/ajax/ajax_shoppinglist_mail.asp', { method: 'post', parameters: params, onComplete: processMailShoppinglist } );
}

function processMailShoppinglist(request) {

  var r = request.responseXML;
  var result = r.getElementsByTagName("result")[0].firstChild.data;
  var friends_count = r.getElementsByTagName("friendcount")[0].firstChild.data;
  var friends = r.getElementsByTagName("friend");
  var str_friends = '';

  if ( friends.length != 0 ) {
    for (var i = 0; i < friends.length; i++) {
      str_friends+= '<br />' + friends[i].firstChild.data;
    }
  }

  var str_header = 'E-mail shopping list';
  var str_message = '';

  if ( result == 1 ) {
    str_message += 'Je shopping list is verstuurd aan:<br />' + str_friends;
  }
  else {
    str_message += 'Er is iets misgegaan, probeer het even opnieuw...<br /><br />';
  }
  showMessageBox(str_header,str_message,300,250,null);

}

//////////////////////////////////////////////////////////////////////////
// inbox functions                                                    //
//////////////////////////////////////////////////////////////////////////

// inbox message deleting
function inbox_delete_message( message_id ) {
  var memberid = document.frm_member_box.member_id.value;
  if ( memberid == -1 ) {
    showMemberLoginBox('Om een bericht te verwijderen uit je inbox moet je eerst zijn ingelogd.', 'ajax_inbox_delete_message:' + message_id);
  }
  else {
    ajax_inbox_delete_message(message_id);
  }
}

function ajax_inbox_delete_message( message_id ) {
  new Ajax.Request ( '/includes/ajax/ajax_inbox_delete.asp', { method: 'get', parameters: 'messageid=' + message_id, onComplete: processDeleteMessage } );
}

function processDeleteMessage(request) {

  var message_deleted = request.responseXML.getElementsByTagName("message_deleted")[0].firstChild.data;
  var message_count = request.responseXML.getElementsByTagName("message_count")[0].firstChild.data;
  var tbody = $('tbl_inbox').getElementsByTagName("TBODY")[0];
  var row_to_delete_1 = $('inbox_message_row_' + message_deleted);
  var row_to_delete_2 = $('inbox_row_' + message_deleted);
  var row_to_delete_3 = $('inbox_line_' + message_deleted);
  tbody.removeChild(row_to_delete_1);
  tbody.removeChild(row_to_delete_2);
  tbody.removeChild(row_to_delete_3);

  var array_rows = tbody.rows;
  if ( array_rows.length == 0 ) {

    new_row_1 = document.createElement("tr");
    new_cell_1_1 = document.createElement("td");
    new_cell_1_2 = document.createElement("td");
    new_cell_1_3 = document.createElement("td");

    new_cell_1_1.className = 'side';
    new_cell_1_2.colSpan = 5;
    new_cell_1_2.className = 'no_messages';
    new_cell_1_3.className = 'side';

    new_text = document.createTextNode("geen berichten");
    new_cell_1_2.appendChild(new_text);
    new_row_1.appendChild(new_cell_1_1);
    new_row_1.appendChild(new_cell_1_2);
    new_row_1.appendChild(new_cell_1_3);

    new_row_2 = document.createElement("tr");
    new_cell_2_1 = document.createElement("td");
    new_cell_2_2 = document.createElement("td");
    new_cell_2_3 = document.createElement("td");

    new_cell_2_1.className = 'side';
    new_cell_2_2.colSpan = 5;
    new_cell_2_2.className = 'line';
    new_cell_1_3.className = 'side';

    new_row_2.appendChild(new_cell_2_1);
    new_row_2.appendChild(new_cell_2_2);
    new_row_2.appendChild(new_cell_2_3);

    tbody.appendChild(new_row_1);
    tbody.appendChild(new_row_2);
  }

  $('inbox_count').update('(' + message_count + ')');

}

// inbox message show
function inbox_show_message( message_id ) {
  var memberid = document.frm_member_box.member_id.value;
  if ( memberid == -1 ) {
    showMemberLoginBox('Om een bericht te zien in je inbox moet je eerst zijn ingelogd.', 'ajax_inbox_show_message:' + message_id);
  }
  else {
    ajax_inbox_show_message(message_id);
  }
}

function ajax_inbox_show_message( message_id ) {

  var row_header_id = 'inbox_row_' + message_id;
  var row_id = 'inbox_message_row_' + message_id;

  if ( ($(row_id)) && ($(row_id).className == 'inbox_message_row inbox_message_row_active') ) {
    $(row_header_id).className = 'closed';
    $(row_id).className = 'inbox_message_row';
    $(row_id).style.display = 'none';
  }
  else {
    $(row_header_id).className = 'opened';
    if ( (window.XMLHttpRequest) || (window.ActiveXObject) ) {
      if ( $("tbl_inbox") ) {
        new Ajax.Request ( '/includes/ajax/ajax_inbox_show.asp', { method: 'get', parameters: 'messageid=' + message_id, onComplete: processShowMessage } );
      }
    }
    else {
      location = '/leden/inbox.asp?id=' + message_id;
    }

  }
}

function processShowMessage(request) {

  var message_id              = request.responseXML.getElementsByTagName("message_id")[0].firstChild.data;
  var el_inbox_row          = $('inbox_row_' + message_id);
  var el_inbox_message_row  = $('inbox_message_row_' + message_id);

  var array_rows = $('tbl_inbox').getElementsByTagName("TBODY")[0].rows;
  for (i = 0; i < array_rows.length; i++) {
    row_current = array_rows[i];
    if ( row_current.id ) {
      if ( row_current.id.substr(0, 20) == 'inbox_message_row_' ) {
        row_current.className = 'inbox_message_row';
        row_current.style.display = 'none';
      }
      else if ( row_current.id.substr(0, 12) == 'inbox_row_' ) {
        if ( row_current.className != 'closed unread' ) {
          row_current.className = 'closed';
        }
      }
    }
  }

  el_inbox_row.className = 'opened';
  el_inbox_message_row.className = 'inbox_message_row inbox_message_row_active';
  el_inbox_message_row.style.display = 'block';
  if ( browser != 'ie' ) { el_inbox_message_row.style.display = 'table-row'; }
}
