// Recipe page //
// init //

var score_def = 8;
var ajx = '/includes/ajax/';
var ri = '/i/elements/buttons/popup/';

document.observe("dom:loaded", function() {

  if ( !$('notfound') ) {
    if ( !$('recipe_member_score_already_scored') ) { fill_scorepanel(); }
    add_tool_listeners();
  }
  disableSel($("r_core"));

});


function disableSel(target){
if (typeof target.onselectstart!='undefined') //IE
target.onselectstart=function(){return false}
else if (typeof target.style.MozUserSelect!='undefined') //FF
target.style.MozUserSelect='none'
else //Other
target.onmousedown=function(){return false}
target.style.cursor = 'default'
}


// Scoring //

function fill_scorepanel() {

  $("r_score_panel").insert('<div id="r_score_btns">', 'bottom');
  $("r_score_btns").insert('<div id="r_score_btns_1" class="r_score_btns_l">', 'bottom');
  $("r_score_btns").insert('<div id="r_score_btns_2" class="r_score_btns_l">', 'bottom');

  var d, a;
  for(var i=10;i > 0;i--) {
    d = (i > 5) ? $("r_score_btns_1") : $("r_score_btns_2") ;
    a = ((i!=1)&&(i!=6)) ? '<div>&#149;</div>' : '' ;
    $(d).insert('<div id="sc_' + i + '" class="btn_score">' + i +'</div>' + a, 'top');
  }

  for(var i=10;i > 0;i--) {
    $('sc_' + i).observe('mouseover', score_mo.bindAsEventListener($('sc_' + i), 'on'));
    $('sc_' + i).observe('mouseout', score_mo.bindAsEventListener($('sc_' + i), 'off'));
    $('sc_' + i).observe('click', score_recipe.bindAsEventListener($('sc_' + i)));
  }

}

function score_mo(el,state) {
  (state == 'on' ) ? this.addClassName('btn_score_mo') : this.removeClassName('btn_score_mo');
}

function score_recipe() {

  var recipe_id = $('recipe_id').value;
  var score = this.id.replace('sc_', '');
  var f_passthrough = function() {
    hideLightBox('lightbox'); if ( $("r_score_btns") ) { ajax_score_recipe(recipe_id,score); }
  };
  var lb_head = 'Recept waarderen';
  var lb_txt = 'Om een recept te kunnen waarderen moet je eerst zijn ingelogd.';
  tryMemberAction(true,f_passthrough,lb_head,lb_txt);

}

function ajax_score_recipe( recipe_id, score ) {
  $("r_score_btns").update('<div class="score_wait"><img src="/i/elements/symbols/icon_wait.gif" /></div>');
  new Ajax.Request ( ajx + 'ajax_recipe_score.asp', { method: 'get', parameters: 'recipeid=' + recipe_id + '&score=' + score, onComplete: processScoreRecipe } );

}

function processScoreRecipe(x) {

  var r = x.responseXML;
  var r_id = r.getElementsByTagName("recipeid")[0].firstChild.data;
  var sc_new = r.getElementsByTagName("score")[0].firstChild.data;
  var arr_sc;

  if ( sc_new != -1 ) {
    if ( sc_new.indexOf(',') != -1 ) { arr_sc = sc_new.split(',') }
    else if (sc_new.indexOf('.') != -1 ) { arr_sc = sc_new.split('.') }
    else { arr_sc = new Array(sc_new,'0') }

    $("recipe_line_score").update(
      'waardering '
      + '<span class="score_major">' + arr_sc[0] + '</span>'
      + '<span class="score_minor">.' + arr_sc[1] + '</span>');

    var r_scored = readCookie('scored') + '';
    r_scored = (r_scored != '') ? r_scored + '.' + r_id : r_id ;

    createCookie('scored',r_scored,90);

    $("r_score_btns").update(
      '<div id="recipe_member_score_already_scored" class="noindent">Hartelijk dank voor het waarderen van dit recept.</div>');
  }

}

//////////////////////////////////////////////////////////////////////////
// Member Tools listeners                                               //
//////////////////////////////////////////////////////////////////////////

function add_tool_listeners() {

  if ( $('tool_fav') ) { add_tool_listeners_cookbook_present(); }
  if ( $('tool_cookbook') ) { add_tool_listeners_cookbook_nonpresent(); }
  if ( $('sobo') ) { add_social_links(); }

  var arr_t_id = new Array('tool_weekmenu', 'tool_shoppinglist', 'tool_print', 'tool_mail', 'btn_comment');
  var arr_t_f = new Array(add_to_weekmenu, add_to_shoppinglist, print_recipe, mail_to_friend, add_recipe_comment);
  var arr_t_mo = new Array(1, 1, 1, 1, 0);

 	for(var i=0; i<=arr_t_id.length; i++) {

    if ( $(arr_t_id[i]) ) {
      if ( arr_t_mo[i] == 1 ) {
        $(arr_t_id[i]).observe('mouseover', highlight_tool.bindAsEventListener($(arr_t_id[i]), 'on'));
        $(arr_t_id[i]).observe('mouseout', highlight_tool.bindAsEventListener($(arr_t_id[i]), 'off'));
      }
      $(arr_t_id[i]).observe('click', arr_t_f[i]);
    }
  }

}

function add_tool_listeners_cookbook_present() {

  var t = $('tool_fav');
  if ( t ) {
    t.observe('mouseover', highlight_tool.bindAsEventListener(t, 'on'));
    t.observe('mouseout', highlight_tool.bindAsEventListener(t, 'off'));
    t.observe('click', rec_cookbook_make_fav);
  }

  t = $('tool_delete');
  if ( t ) {
    t.observe('mouseover', highlight_tool.bindAsEventListener(t, 'on'));
    t.observe('mouseout', highlight_tool.bindAsEventListener(t, 'off'));
    t.observe('click', delete_from_cookbook);
  }

}

function add_tool_listeners_cookbook_nonpresent() {

  var t = $('tool_cookbook');
  if ( t ) {
    t.observe('mouseover', highlight_tool.bindAsEventListener(t, 'on'));
    t.observe('mouseout', highlight_tool.bindAsEventListener(t, 'off'));
    t.observe('click', add_to_cookbook);
  }

}

function highlight_tool(el,state) {
  this.style.color = (state == 'on') ? '#3a4d08' : '#739028' ;
}

//////////////////////////////////////////////////////////////////////////
// Notes                                                                //
//////////////////////////////////////////////////////////////////////////

function add_recipe_note( recipe_id ,recipe_title ,cookbook, action ) {

  var f_passthrough = function() {
    var memberid = $('member_id').value;
    ajax_add_recipe_note_edit(memberid, recipe_id, recipe_title, cookbook, action);
  };
  var lb_head = 'Notitie toevoegen';
  var lb_txt = 'Om een notitie aan een recept toe te kunnen voegen moet je eerst zijn ingelogd.';
  tryMemberAction(true,f_passthrough,lb_head,lb_txt);

}

function ajax_add_recipe_note_edit( member_id, recipe_id, recipe_title, cookbook, action ) {

  var str_header = 'Notitie toevoegen';
  var str_message = '';
  var str_message_add_to_cookbook = '';
  var str_note_text = '';
  var str_note_text_intro = 'Type hier je notitie';
  var str_action = '<img src="' + ri + 'btn_notitie_toevoegen.gif" />';
  var note_max_length = 400;

  if ( action == 'edit' ) {
    str_header = 'Notitie bewerken';
    str_action = '<img src="' + ri + 'btn_notitie_bewerken.gif" />';
    str_note_text_intro = 'Wijzig hier je notitie';
    str_note_text = $('rec_notes').innerHTML;
    str_note_text = str_note_text.replace(/<br \/>/gi, '\n');
    str_note_text = str_note_text.replace(/<br>/gi, '\n');
  }

  var note_max_length_left = note_max_length - (str_note_text.length) ;

  if ( cookbook == '0' ) {
    str_message_add_to_cookbook = '<div class="popup_recipe_note_add_to_cookbook">Het recept \'' + recipe_title + '\' zit nog niet in je kookboek. Wanneer je de notitie toevoegt, dan wordt het recept ook meteen toegevoegd aan je kookboek.</div>';
  }

  str_message +=
    str_message_add_to_cookbook
    + '<div class="popup_recipe_note_intro">' + str_note_text_intro + '</div>'
    + '<form id="frm_popup_recipe_note" name="frm_popup_recipe_note">'
    + '<table id="tbl_popup_recipe_note">'
    + '<tr>'
    + '  <td><textarea id="popup_recipe_note_text" name="popup_recipe_note_text" cols="50" rows="5" onKeyDown="limitNrOfChars(document.frm_popup_recipe_note.popup_recipe_note_text,\'popup_recipe_note_text_chars\',' + note_max_length + ');" onKeyUp="limitNrOfChars(document.frm_popup_recipe_note.popup_recipe_note_text,\'popup_recipe_note_text_chars\',' + note_max_length + ');">' + str_note_text + '</textarea></td>'
    + '</tr>'
    + '<tr>'
    + '  <td><div id="popup_recipe_note_text_chars">' + note_max_length_left + ' karakters over</div></td>'
    + '</tr>'
    + '<input type="hidden" id="memberid" name="memberid" value="' + member_id + '">'
    + '<input type="hidden" id="recipeid" name="recipeid" value="' + recipe_id + '">'
    + '<input type="hidden" id="action" name="action" value="' + action + '">'
    + '</table>'
    + '</form">Je notitie is niet zichtbaar voor derden, maar is alleen door jezelf te bekijken.'
    + '<div class="popup_recipe_note_go"><a href="javascript:ajax_add_recipe_note();">' + str_action + '</a></div>'
    ;

  var f_passthrough = function() {
    document.forms["frm_popup_recipe_note"].popup_recipe_note_text.focus();
  };
  showMessageBox(str_header,str_message,360,380, f_passthrough);

}

function ajax_add_recipe_note() {

  var frm = document.frm_popup_recipe_note;
  var params =
    "?go=1"
    + "&memberid=" + frm.memberid.value
    + "&recipeid=" + frm.recipeid.value
    + "&notetext=" + frm.popup_recipe_note_text.value
    + "&action=" + frm.action.value;
  new Ajax.Request ( ajx + 'ajax_add_recipe_note.asp', { method:'post', parameters:params, onComplete:processAddAddRecipeNote } );

}

function processAddAddRecipeNote(x) {

  var msg_w = 360; var msg_h = 180;

  var r = x.responseXML;
  var respons = r.getElementsByTagName("respons")[0].firstChild.data;
  var recipeid = r.getElementsByTagName("recipeid")[0].firstChild.data;
  var recipecount = r.getElementsByTagName("recipecount")[0].firstChild.data;
  var recipealreadyincookbook = r.getElementsByTagName("recipealreadyincookbook")[0].firstChild.data;
  var notetext = r.getElementsByTagName("notetext")[0].firstChild.data;
  var noteaction = r.getElementsByTagName("noteaction")[0].firstChild.data;

  if ( notetext == '$emptystring$' ) { notetext = '' }

  var str_header = 'Notitie toegevoegd';
  var str_message = '';
  var str_action = 'Je notitie is toegevoegd aan het recept.';
  msg_w = 360; msg_h = 120;

  if ( (noteaction == 'add') && (notetext == '') ) {
    str_header = 'Notitie niet toegevoegd';
    str_message += 'Je hebt geen tekst ingegeven, dus je notitie is niet toegevoegd aan het recept...<br/>';
    str_action = '';
    msg_w = 360; msg_h = 120;
  }
  else {

    var str_recipe = (recipecount == 1) ? 'recept' : 'recepten' ;

    if ( noteaction == 'edit') {
      str_header = 'Notitie bewerkt';
      str_action = 'Je gewijzigde notitie is opgeslagen.';
      if ( notetext == '' ) {
        str_header = 'Notitie verwijderd';
        str_message += 'Je hebt geen tekst ingegeven, dus je notitie is verwijderd.<br/>';
        str_action = '';
      }
      msg_w = 360; msg_h = 120;
    }

    if ( respons != 0 ) {

      if ( recipealreadyincookbook == 0 ) {
        str_message +=
          'Je notitie is toegevoegd aan het recept.<br/><br/>'
          + 'Het recept is ook meteen toegevoegd aan je kookboek. '
          + 'Je kookboek bevat nu ' + recipecount + ' ' + str_recipe + '.<br/><br/>'
          + '<a href="/leden/kookboek.asp">Klik hier</a> om naar je kookboek te gaan.';
        $('cookbook_count').update('(' + recipecount + ')');
        msg_w = 360; msg_h = 150;
      }
      else { str_message += str_action + '<br/>' }

      notetext = notetext.replace(/\n/g, "<br />");
      if ( notetext == '' ) { notetext = '&nbsp;<br />' }
      $('rec_notes').update(notetext);

      if ( (noteaction == 'add') && (notetext != '') ) {
        $('rec_note_btn').addClassName('btn_edit');
        var btn_html = $('recnotes_inner').innerHTML;
        btn_html = btn_html.replace(",1,'add'" , ",1,'edit'");
        btn_html = btn_html.replace(",0,'add'" , ",1,'edit'");
        $('recnotes_inner').update(btn_html);
      }

      else if ( (noteaction == 'edit') && (notetext == '&nbsp;<br />') ) {
        $('rec_note_btn').removeClassName('btn_edit');
        var btn_html = $('recnotes_inner').innerHTML;
        btn_html = btn_html.replace(",1,'edit'" , ",1,'add'");
        btn_html = btn_html.replace(",0,'edit'" , ",1,'add'");
        $('recnotes_inner').update(btn_html);
      }

      $('cookbook_count').update('(' + recipecount + ')');

    }
    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,msg_w,msg_h,null);

}

//////////////////////////////////////////////////////////////////////////
// Comments                                                             //
//////////////////////////////////////////////////////////////////////////

function add_recipe_comment() {

  var f_passthrough = function() {
    var r_id = $('recipe_id').value;
    var r_title = $('recipe_title').value;
    ajax_add_recipe_comment_edit(r_id, r_title);
  };

  var lb_head = 'Reactie toevoegen';
  var lb_txt = 'Om een reactie op een recept te kunnen geven moet je eerst zijn ingelogd.';
  tryMemberAction(true,f_passthrough,lb_head,lb_txt);

}

function ajax_add_recipe_comment_edit( recipe_id, recipe_title ) {

  var str_header = 'Reactie toevoegen';
  var str_message = '';
  var comment_max_length = 400;
  var comment_max_length_left = 400;

  str_message +=
    '<div class="popup_recipe_comment_intro">Type hier je reactie</div>'
    + '<form id="frm_popup_recipe_comment" name="frm_popup_recipe_comment">'
    + '<table id="tbl_popup_recipe_comment">'
    + '<tr>'
    + '  <td><textarea id="popup_recipe_comment_text" name="popup_recipe_note_text" cols="50" rows="5" onKeyDown="limitNrOfChars(document.frm_popup_recipe_comment.popup_recipe_comment_text,\'popup_recipe_comment_text_chars\',' + comment_max_length + ');" onKeyUp="limitNrOfChars(document.frm_popup_recipe_comment.popup_recipe_comment_text,\'popup_recipe_comment_text_chars\',' + comment_max_length + ');"></textarea></td>'
    + '</tr>'
    + '<tr>'
    + '  <td><div id="popup_recipe_comment_text_chars">' + comment_max_length_left + ' karakters over</div></td>'
    + '</tr>'
    + '<input type="hidden" id="recipeid" name="recipeid" value="' + recipe_id + '">'
    + '</table>'
    + '</form">Bij publicatie van je reactie wordt ter bescherming van je privacy alleen je voornaam vermeld.'
    + '<div class="popup_recipe_comment_go"><a href="javascript:ajax_add_recipe_comment();"><img src="' + ri + 'btn_reactie_toevoegen.gif" /></a></div>'
    ;

  var f_passthrough = function() {
    document.forms["frm_popup_recipe_comment"].popup_recipe_comment_text.focus();
  };

  showMessageBox(str_header,str_message,360,380, f_passthrough);

}

function ajax_add_recipe_comment() {

  var frm = document.frm_popup_recipe_comment;
  var params =
    "?go=1"
    + "&recipeid=" + frm.recipeid.value
    + "&commenttext=" + frm.popup_recipe_comment_text.value;
  new Ajax.Request ( ajx + 'ajax_add_recipe_comment.asp', { method: 'post', parameters: params, onComplete: processAddAddRecipeComment } );

}

function processAddAddRecipeComment(x) {

  var msg_w = 360; var msg_h = 120;

  var r = x.responseXML;
  var respons = r.getElementsByTagName("respons")[0].firstChild.data;
  var recipeid = r.getElementsByTagName("recipeid")[0].firstChild.data;
  var commenttext = r.getElementsByTagName("commenttext")[0].firstChild.data;
  var membername = r.getElementsByTagName("membername")[0].firstChild.data;

  if ( commenttext == '$emptystring$' ) { commenttext = '' }
  var el_parent = $("recipe_member_comments_content");
  var str_header = 'Reactie toegevoegd';
  var str_message = '';

  if ( respons != 0 ) {
    if ( commenttext != "" ) {
      if ( $("recipe_comment_notext") ) { el_parent.removeChild($("recipe_comment_notext")) }
      str_message += 'Je reactie is toegevoegd aan het recept.<br/>';
      commenttext = commenttext.replace(/\n/g, " ");
      el_parent.innerHTML +=
        '<div class="recipe_comment_line">'
        + '  <div class="recipe_comment_text">' + commenttext + '</div>'
        + '  <div class="recipe_comment_name">- ' + membername + '</div>'
        + '</div>';
    }
    else {
      str_header = 'Reactie niet toegevoegd';
      str_message += 'Je hebt geen tekst ingegeven, dus de reactie wordt niet geplaatst...<br/>';
      msg_w = 360; msg_h = 120;
    }
  }
  else {
    str_message +=
      'Je sessie is (toevallig) verlopen tijdens het toevoegen van je reactie.<br/><br/>'
      + 'Log even opnieuw in en je kunt het recept alsnog voorzien van een reactie.<br/>';
  }
  showMessageBox(str_header,str_message,msg_w,msg_h,null);

}

//////////////////////////////////////////////////////////////////////////
// Add to cookbook                                                      //
//////////////////////////////////////////////////////////////////////////

function add_to_cookbook() {

  var f_passthrough = function() {
    var recipeid = $('recipe_id').value;
    new Ajax.Request ( ajx + 'ajax_add_to_cookbook.asp', { method: 'get', parameters: 'recipeid=' + recipeid, onComplete: processAddToCookbook } );
  };

  var lb_head = 'Toevoegen aan kookboek';
  var lb_txt = 'Om een recept toe te kunnen voegen aan je kookboek moet je eerst zijn ingelogd.';
  tryMemberAction(true,f_passthrough,lb_head,lb_txt);

}

function processAddToCookbook(x) {

  var r = x.responseXML;
  var recipe_id = r.getElementsByTagName("recipeid")[0].firstChild.data;
  var recipe_title = r.getElementsByTagName("recipetitle")[0].firstChild.data;
  var recipecount = r.getElementsByTagName("recipecount")[0].firstChild.data;
  var recipealreadyincookbook = r.getElementsByTagName("recipealreadyincookbook")[0].firstChild.data;

  var lb_head = 'Toegevoegd aan kookboek';
  var str_recipe = (recipecount == 1) ? 'recept' : 'recepten' ;

  var lb_txt = '';
  if ( recipe_id != -1 ) {
    if ( recipealreadyincookbook == 0 ) {

      lb_txt +=
        'Het recept \'' + recipe_title + '\' is toegevoegd aan je kookboek.<br/>'
        + '<br/>Je kookboek bevat nu ' + recipecount + ' ' + str_recipe + '.<br/><br/>'
        + '<a href="/leden/kookboek.asp">Klik hier</a> om naar je kookboek te gaan.';

      $('cookbook_count').update('(' + recipecount + ')');

      $('recipe_member_tools').insert('<div id="tool_spacer">&nbsp;</div><div id="tool_delete">verwijder uit kookboek</div><div id="tool_fav" class="tool_fav_false">plaats dit recept bij<br />mijn favoriete recepten</div>');

      $('tool_cookbook').remove();
      add_tool_listeners_cookbook_present();

    }
    else {
      lb_txt +=
        'Het recept \'' + recipe_title + '\' zit reeds in je kookboek.<br/>'
        + '<br/>Je kookboek bevat ' + recipecount + ' ' + str_recipe + '.<br/><br/>'
        + '<a href="/leden/kookboek.asp">Klik hier</a> om naar je kookboek te gaan.';
    }
  }
  else {
    lb_txt +=
      'Je sessie is (toevallig) verlopen tijdens het toevoegen van het recept aan je kookboek.<br/><br/>'
      + 'Log even opnieuw in en je kunt het recept alsnog toevoegen.<br/>';
  }
  showMessageBox(lb_head,lb_txt,300,170,null);

}

//////////////////////////////////////////////////////////////////////////
// Add to weekmenu                                                      //
//////////////////////////////////////////////////////////////////////////

function add_to_weekmenu() {

  var f_passthrough = function() {
    var recipeid = $('recipe_id').value;
    new Ajax.Request ( ajx + 'ajax_add_to_weekmenu_choose.asp', { method: 'get', parameters: 'recipeid=' + recipeid, onComplete: processAddToWeekmenuChooseDay } );
  };

  var lb_head = 'Toevoegen aan weekmenu';
  var lb_txt = 'Om een recept toe te kunnen voegen aan je weekmenu moet je eerst zijn ingelogd.';
  tryMemberAction(true,f_passthrough,lb_head,lb_txt,null);

}

function processAddToWeekmenuChooseDay(x) {

  var r = x.responseXML;
  var respons_code = r.getElementsByTagName("respons")[0].firstChild.data;
  var recipealreadyinweekmenu = r.getElementsByTagName("recipealreadyinweekmenu")[0].firstChild.data;

  var recipe_id = r.getElementsByTagName("recipe_id")[0].firstChild.data;
  var recipe_title = r.getElementsByTagName("recipe_title")[0].firstChild.data;

  var d_us = new Array('mo','tu','we','th','fr','sa','su');
  var d_nl = new Array('ma','di','wo','do','vr','za','zo');
  var d_val = new Array(7), d_v;

  for(var i=0;i < 7;i++) {
    d_v = r.getElementsByTagName(d_us[i])[0].firstChild.data;
    d_val[i] = (d_v=='') ? '-' : d_v;
  }

  var lb_head = 'Zet op weekmenu';
  var msg_w = 480;
  var msg_h = 350;
  var lb_txt = '';

  if ( respons_code != 0 ) {

    if ( recipealreadyinweekmenu == 0 ) {

      for(var i=0;i < 7;i++) {
      lb_txt +=
        '<tr>'
        + '<td class="radio"><input type="radio" id="weekmenu_day" name="weekmenu_day" value="' + d_nl[i] + '" checked=true></td>'
        + '<td class="day">' + d_nl[i] + '</td>'
        + '<td class="recipe">' + d_val[i] + '</td>'
        + '</tr>';
      }

      lb_txt =
        '<div class="weekmenu_choose_intro">Plaats het recept \'' + recipe_title  + '\' op dag...</div>'
        + '<form id="popup_weekmenu_frm" name="popup_weekmenu_frm">'
        + '<table id="popup_weekmenu">'
        + '<thead>'
        + '<td></td>'
        + '<td class="day">dag</td>'
        + '<td>recept</td>'
        + '</thead>'
        + lb_txt
        + '</table>'
        + '</form">'
        + '<div class="weekmenu_choose_link_ok"><a href="javascript:ajax_add_to_weekmenu(' + recipe_id + ');"><img src="' + ri + 'btn_recept_plaatsen.gif" /></a></div>';

    }
    else {
      msg_w = 280; msg_h = 150;
      lb_txt +=
        'Het recept zit reeds in je weekmenu.<br/>'
        + '<br/><a href="/leden/weekmenu.asp">Klik hier</a> om naar je weekmenu te gaan.';
    }

  }
  else {
    msg_w = 280; msg_h = 150;
    lb_txt +=
      'Je sessie is (toevallig) verlopen tijdens het toevoegen van het recept aan je weekmenu.<br/><br/>'
      + 'Log even opnieuw in en je kunt het recept alsnog toevoegen.<br/>';
  }

  showMessageBox(lb_head,lb_txt,msg_w,msg_h,null);

}

function ajax_add_to_weekmenu( recipe_id ) {

  var day = 'ma';
  el_weekmenu_day = document.popup_weekmenu_frm.weekmenu_day;
  for(var i=0;i < el_weekmenu_day.length;i++) {
    if ( el_weekmenu_day[i].checked == true ) { day = el_weekmenu_day[i].value; }
  }
  new Ajax.Request ( ajx + 'ajax_add_to_weekmenu.asp', { method: 'get', parameters: 'recipeid=' + recipe_id + '&day=' + day, onComplete: processAddToWeekmenu } );

}

function processAddToWeekmenu(x) {

  var r_count = x.responseXML.getElementsByTagName("recipecount")[0].firstChild.data;
  var str_rec = (r_count == 1) ? '1 recept' : r_count + ' recepten' ;
  $('weekmenu_count').update('(' + r_count + ')');
  var str_header = 'Zet op weekmenu';
  var str_message =
    'Het recept is toegevoegd aan je weekmenu.<br/>'
    + '<br/>Je weekmenu bevat nu ' + str_rec + '.<br/><br/>'
    + '<a href="/leden/weekmenu.asp">Klik hier</a> om naar je weekmenu te gaan.';

  showMessageBox(str_header,str_message,280,150,null);

}

//////////////////////////////////////////////////////////////////////////
// Shoppinglist                                                         //
//////////////////////////////////////////////////////////////////////////

function add_to_shoppinglist() {

  var f_passthrough = function() {
    var recipeid = $('recipe_id').value;
    new Ajax.Request ( ajx + 'ajax_add_to_shoppinglist.asp', { method: 'get', parameters: 'recipeid=' + recipeid, onComplete: processAddToShoppinglist } );
  };

  var lb_head = 'Toevoegen aan shopping list';
  var lb_txt = 'Om de ingredi&euml;nten van een recept toe te kunnen voegen aan je shopping list moet je eerst zijn ingelogd.';
  tryMemberAction(true,f_passthrough,lb_head,lb_txt);

}

function processAddToShoppinglist(x) {

  var r = x.responseXML;
  var r_title = r.getElementsByTagName("recipe_title")[0].firstChild.data;
  var i_count = r.getElementsByTagName("ingredients_count")[0].firstChild.data;
  var i_count_added = r.getElementsByTagName("ingredients_added_count")[0].firstChild.data;

  var str_header = 'Toegevoegd aan shopping list';
  var str_ingr = (i_count == 1) ? '1 boodschap' : i_count + ' boodschappen' ;

  var str_message =
    'De ' + i_count_added + ' ingredi&euml;nten van het recept \'' + r_title + '\' zijn toegevoegd aan je shopping list.<br/>'
    + '<br/>Je shopping list bevat nu ' + str_ingr + '.<br/>'
    + '<br/><a href="/leden/shoppinglist.asp">Klik hier</a> om naar je shopping list te gaan.';

  $('shoppinglist_count').update('(' + i_count + ')');

  showMessageBox(str_header,str_message,300,200,null);

}

//////////////////////////////////////////////////////////////////////////
// Print                                                                //
//////////////////////////////////////////////////////////////////////////

function print_recipe() {
  window.open('/recept/print.asp?id=' + $('recipe_id').value,'recept','width=400,height=400,resizable=yes');
}

//////////////////////////////////////////////////////////////////////////
// Mail a friend                                                        //
//////////////////////////////////////////////////////////////////////////

function mail_to_friend() {

  var f_passthrough = function() {
    var r_id = $('recipe_id').value;
    var r_title = $('recipe_title').value;
    ajax_mail_to_friend_window(r_id,r_title);
  };

  var lb_head = 'E-mail recept';
  var lb_txt = 'Om dit recept naar je vriend(in) te mailen moet je eerst zijn ingelogd.';
  tryMemberAction(true,f_passthrough,lb_head,lb_txt,null);

}

function ajax_mail_to_friend_window( recipe_id , recipe_title ) {

  var lb_head = 'E-mail recept';
  var lb_txt = '';

 	for(var i=1; i<=5; i++) {
    lb_txt +=
      '<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>';
  }

  lb_txt =
    'Vul de namen en e-mailadressen in van maximaal 5 vriend(inn)en, klik op \'recept versturen\' en het recept \'' + recipe_title + '\' wordt direct per e-mail aan hen verstuurd.<br /><br />'
    + '<div id="frm_mailfriend_errors"></div>'
    + '<form id="frm_mailfriend" name="frm_mailtofriend">'
    + '<table class="tbl_mailfriend">'
    + '<thead>'
    + '<tr>'
    + '<td class="nr"></td>'
    + '<td class="name">Naam</td>'
    + '<td class="mail">E-mailadres</td>'
    + '</tr>'
    + '</thead>'
    + '<tbody>'
    + lb_txt
    + '<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>'
    + '<input type="hidden" id="recipeid" name="recipeid" value="' + recipe_id + '">'
    + '</form>'
    + '<div class="member_popup_box_login_btn"><input type="image" src="' + ri + 'btn_recept_versturen.gif" id="send" name="send" onclick="ajax_mail_to_friend_window_check();"></div>';

  var f_passthrough = function() { document.forms["frm_mailfriend"].friend_name_1.focus(); };
  showMessageBox(lb_head,lb_txt,400,420,f_passthrough);

}

function ajax_mail_to_friend_window_check() {

  var err = 0, c_err = 'frm_error';
  var frm = document.forms["frm_mailfriend"];
  var fn = $('friend_name_1'), fe = $('friend_email_1'), fnv, fev;

  if ( fn.getValue() == '' ) { fn.addClassName(c_err); err++; }
  else { fn.removeClassName('frm_error') }

  if ( !checkValidMailAddress(fe.getValue()) ) {fe.addClassName(c_err); err++; }
  else { fe.removeClassName(c_err) }

 	for(var i=2; i<=5; i++) {
    fn = $('friend_name_' + i), fe = $('friend_email_' + i);
    fnv = fn.getValue(), fev = fe.getValue();
    if ( (fnv == '') && (fev != '') ) { fn.addClassName(c_err); err++; }
    else { fn.removeClassName(c_err) }
    if ( (fnv != '') && (fev == '') ) { fe.addClassName(c_err); err++; }
    else { fe.removeClassName(c_err) }
    if ( (fev != '') && (!checkValidMailAddress(fev)) ) { fe.addClassName(c_err); err++; }
  }

  if ( err == 0 ) { ajax_mail_to_friend() }
  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_mail_to_friend( recipe_id ) {

  var frm_mailfriend = document.forms["frm_mailfriend"];

  var params =
    '?go=1'
    + '&recipeid=' + encodeURI(frm_mailfriend.recipeid.value)
    + '&message=' + escape(frm_mailfriend.message_txt.value);

 	for(var i=1; i<=5; i++) {
    params +=
    '&name'+i+'=' + encodeURI(frm_mailfriend['friend_name_'+i].value)
    + '&mail'+i+'=' + encodeURI(frm_mailfriend['friend_email_'+i].value);
 	}

  new Ajax.Request ( ajx + 'ajax_mail_to_friend.asp', { method: 'post', parameters: params, onComplete: processMailToFriend } );
}

function processMailToFriend(x) {
  var r = x.responseXML;
  var recipe_title = r.getElementsByTagName("recipe_title")[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 recept';
  var str_message = '';
  str_message += 'Het recept \'' + recipe_title + '\' is verstuurd aan<br />' + str_friends;
  showMessageBox(str_header,str_message,300,200,null);
}

//////////////////////////////////////////////////////////////////////////
// Make fav                                                             //
//////////////////////////////////////////////////////////////////////////

function rec_cookbook_make_fav() {
  new Ajax.Request ( ajx + 'ajax_cookbook_make_fav.asp', { method: 'get', parameters: 'recipeid=' + $('recipe_id').value, onComplete: processCookbookMakeFav } );
}

//////////////////////////////////////////////////////////////////////////
// Delete from cookbook                                                 //
//////////////////////////////////////////////////////////////////////////

function delete_from_cookbook() {
  new Ajax.Request ( ajx + 'ajax_cookbook_delete.asp', { method: 'get', parameters: 'recipeid=' + $('recipe_id').value, onComplete: processDeleteFromCookbook } );
}

function processDeleteFromCookbook(x) {

  var r = x.responseXML;
  var r_id = r.getElementsByTagName("recipeid")[0].firstChild.data;
  var r_title = r.getElementsByTagName("recipetitle")[0].firstChild.data;
  var r_count = r.getElementsByTagName("recipecount")[0].firstChild.data;

  var lb_txt = '';
  var lb_head = '';

  if ( r_id != -1 ) {

    $('recipe_member_tools').insert({top: "<div id=\"tool_cookbook\">plaats in kookboek</div>"});
    $('tool_spacer').remove();
    $('tool_delete').remove();
    $('tool_fav').remove();

    add_tool_listeners_cookbook_nonpresent();

    $('cookbook_count').update('(' + r_count + ')');

    lb_head = 'Verwijderd uit kookboek';
    var str_recipe = (r_count == 1) ? ' 1 recept' : r_count + ' recepten' ;

    lb_txt =
      'Het recept \'' + r_title + '\' is verwijderd uit je kookboek.<br/>'
      + '<br/>Je kookboek bevat nu ' + str_recipe + '.<br/><br/>'
      + '<a href="/leden/kookboek.asp">Klik hier</a> om naar je kookboek te gaan.';
  }
  else {
    lb_head = 'Sessie verlopen...';
    lb_txt =
      'Je sessie is (toevallig) verlopen tijdens het verwijderen van het recept uit je kookboek.<br/><br/>'
      + 'Log even opnieuw in en je kunt het recept alsnog toevoegen.<br/>';
  }

  showMessageBox(lb_head,lb_txt,300,220,null);

}

//////////////////////////////////////////////////////////////////////////
// Add social bookmark links                                            //
//////////////////////////////////////////////////////////////////////////

function add_social_links() {

  var str_bookmarks = '';
  var str_url_full = '';
  var str_sb_entry;

  var str_sb_template = '<a href="replace_url" title="Deel dit recept op replace_name" rel="nofollow" target="_blank" class="replace_class"></a>';

  var str_url_coded = document.URL;
  str_url_coded = str_url_coded.replace('okokorecepten.sb.local', 'www.okokorecepten.nl');
  var str_title_coded = $('recipe_title').getValue();
  var str_txt_coded = 'Een heerlijk recept: ' + str_title_coded;

  var arr_bm = new Array();

  arr_bm[0] = new Array("NUjij",1,1
                ,"http://nujij.nl/jij.lynkx"
                ,"?t=replace_title&u=replace_url&b=replace_txt");

  arr_bm[1] = new Array("Hyves",1,2
                ,"http://www.hyves.nl/profilemanage/add/tips/"
                ,"?name=replace_title&text=replace_txt replace_url&type=10&rating=5");

  arr_bm[2] = new Array("Facebook",1,3
                ,"http://www.facebook.com/sharer.php"
                ,"?u=replace_url");

  arr_bm[3] = new Array("Twitter",1,4
                ,"http://twitter.com/home"
                ,"?status=replace_title:+replace_url");

  arr_bm[4] = new Array("Digg",1,5
                ,"http://digg.com/submit"
                ,"?phase=2&url=replace_url&title=replace_title&bodytext=replace_txt");

  arr_bm[5] = new Array("Google Bookmarks",1,6
                ,"http://www.google.com/bookmarks/mark"
                ,"?op=add&bkmk=replace_url&title=replace_title&annotation=replace_txt");

  arr_bm[6] = new Array("Stumble it!",1,7
                ,"http://www.stumbleupon.com/submit"
                ,"?url=replace_url&title=replace_title&language=NL");

  arr_bm[7] = new Array("Del.icio.us",1,8
                ,"http://del.icio.us/post"
                ,"?v=4;url=replace_url;title=replace_title");

  arr_bm[8] = new Array("Symbaloo",1,9
                ,"http://www.symbaloo.com/nl/add/"
                ,"url=replace_url&title=replace_title&icon=http://www.okokorecepten.nl/i/socialbookmarks/symbaloo.gif");

  arr_bm[9] = new Array("LinkedIn",1,10
                ,"http://www.linkedin.com/shareArticle"
                ,"?mini=true&url=replace_url&title=replace_title&summary=replace_txt&source=okoko recepten");

  arr_bm[10] = new Array("eKudos",1,11
                ,"http://www.ekudos.nl/artikel/nieuw"
                ,"?url=replace_url&title=replace_title&desc=replace_txt");

  arr_bm[11] = new Array("MSN Reporter",1,12
                ,"http://reporter.msn.nl/"
                ,"?fn=contribute&Title=replace_title&URL=replace_url&cat_id=30&tag_id=95&Remark=replace_txt");



  for (var i = 0; i < arr_bm.length; i++) {
    if ( arr_bm[i][1] == 1 ) {
      str_url_full = arr_bm[i][3] + arr_bm[i][4];
      str_url_full = str_url_full.replace(/replace_title/g, escape(str_title_coded));
      str_url_full = str_url_full.replace(/replace_url/g, escape(str_url_coded));
      str_url_full = str_url_full.replace(/replace_txt/g, escape(str_txt_coded));
      str_sb_entry = str_sb_template;
      str_sb_entry = str_sb_entry.replace(/replace_name/g, arr_bm[i][0]);
      str_sb_entry = str_sb_entry.replace(/replace_url/g, str_url_full);
      str_sb_entry = str_sb_entry.replace(/replace_class/g, 'cl_' + arr_bm[i][2]);
      str_bookmarks += str_sb_entry;
    }
  }

  $('sobo').update('<h2>Deel dit recept op...</h2>' + str_bookmarks);

  if (window.pageTracker != undefined) {
    var sb_nr, sb_name;
    $$('#sobo a').each(function(bm) {
      sb_nr = bm.className.replace('cl_', '');
      for (var i = 0; i < arr_bm.length; i++) {
        if ( arr_bm[i][2] == sb_nr ) { sb_name = arr_bm[i][0] }
      }
      bm.observe('click', addGaTrack.bindAsEventListener(null,sb_name));
    });
  }

}

function addGaTrack(evt,site) {
  pageTracker._trackEvent('Social bookmark','click',site);
}
