var req;
var div_counter = 0;
var submitcount = 0;

var account_ok = 0;
var account_parts_checked = 0;

var lb_arr = new Array(0,0,0,0);

var i_lb_id = 'lightbox';
var i_lb_inner_id = 'lightbox_content_inner';
var i_lb_id_post = '';
var lb_count = 0;

var browser = 'firefox';
if ( navigator.userAgent.indexOf("MSIE") !=-1 ) { browser = 'ie'; }

//////////////////////////////////////////////////////////////////////////
// Highlighting tools                                                   //
//////////////////////////////////////////////////////////////////////////
function hlblock(el,state) {
  if ( state == 'on' ) { el.style.color = '#3a4d08'; }
  else { el.style.color = '#739028'; }
}

//////////////////////////////////////////////////////////////////////////
// General functions                                                    //
//////////////////////////////////////////////////////////////////////////

function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function grayOut(vis, options) {

  var dark=$('darkenScreenObject');
  if (!dark) {
    var tbody = document.getElementsByTagName("body")[0];
    var tnode = document.createElement('div');
    tnode.id='darkenScreenObject';
    tbody.appendChild(tnode);
    dark=$('darkenScreenObject');
  }

  if (vis) { dark.style.height = getBrowserWindowSize().height + 'px'; dark.show(); } else { dark.hide() }
  //adaptToScreen();

}

function tryMemberAction(lr,pf,msg_head,msg_login) {

  if ( (lr == true) && ($('member_id').value == -1) ) {
    f_pending = function() { pf(); };
    showLoginBox(msg_head,msg_login);
  }
  else {
    pf();
  }

}

function showLoginBox(lb_head,lb_txt) {

  if ( lb_txt != '' ) { lb_txt = '<div class="memberbox_intro_txt">' + lb_txt + '</div>' }

  var str_frm =
    lb_txt
    + '  <form id="frm_member_box_popup" name="frm_member_box_popup" onsubmit="return false;" action="#">'
    + '  <div class="member_box_login_lbl">e-mailadres</div>'
    + '  <div class="member_box_login_field"><input type="text" id="member_email" name="member_email" class="member_box_field" value="" size="8" maxlength="50"></div>'
    + '  <div class="member_box_login_lbl">password</div>'
    + '  <div class="member_box_login_field"><input type="password" id="member_password" name="member_password" class="member_box_field" value="" size="8" maxlength="50"></div>'

    + '  <div class="member_popup_box_login_btn"><input type="image" src="/i/elements/buttons/popup/btn_inloggen.gif" id="inloggen" name="inloggen" value="Inloggen" onclick="ajax_login(\'popup\');"></div>'

    + '<div class="member_box_login_remember member_box_login_remember_popup">'
    + '<div class="li_cb"><input type="checkbox" name="member_remember" value="yep" checked></div>'
    + '<div class="li_t">onthoud mijn gegevens</div>'
    + '<div class="li_i"><img src="/i/elements/symbols/icon_help.gif" class="sitehelp" onclick="callHelpPopup(1);" /></div>'
    + '</div>'

    + '  </form>'
    + '  <div class="popuploginbox_subscribe">Als je nog geen lid bent, dan kun je hier een <a href="/leden/aanmelden.asp">gratis account</a> aanmaken.</div>'
    ;

  showMessageBox(lb_head, str_frm, 300, 250, null );

}

function showMessageBox(header,message,boxwidth,boxheight,f_passthrough,id_alt) {

  var lb_exists = 0;
  var lb_ani_speed = 0.5;
  var lb_id, lb_inner_id, lb_id_post;

  if ( id_alt != null ) {
    lb_id = id_alt;
    lb_inner_id = id_alt + '_content_inner';
    lb_id_post = '_' + id_alt;
  }
  else {
    lb_id = i_lb_id;
    lb_inner_id = i_lb_inner_id;
    lb_id_post = i_lb_id_post;
  }

  grayOut(true);

  var html =
    '<div id="lightbox_header">'
  + '  <div id="lb_h_l"><span id="lb_head' + lb_id_post + '">' + header + '</span></div>'
  + '  <div id="lb_h_r"><img id="lb_closer' + lb_id_post + '" src="/i/elements/lightbox/lb_close.gif" onclick="hideLightBox(\'' + lb_id + '\');" /></div>'
  + '</div>'
  + '<div id="lightbox_content">'
  + '  <div id="' + lb_inner_id + '" class="waitmode"><img src="/i/elements/symbols/icon_wait.gif" /></div>'
  + '</div>'
  + '<div id="lightbox_footer">'
  + '  <div id="lb_f_l"></div>'
  + '  <div id="lb_f_r"></div>'
  + '</div>';

	if ( !$(lb_id) ) {
  	var lightbox = document.createElement('div');
  	lightbox.setAttribute('id', lb_id);
    lb_count++;
    //alert('open _' + lb_id + '_ ' + lb_count);
	}
	else {
  	var lightbox = $(lb_id);
    lb_exists = 1;
	}

  lightbox.innerHTML = html;

  var boxWidth = parseFloat(boxwidth);
  var boxHeight = parseFloat(boxheight);
  var boxHeightInner = parseFloat(boxheight-68);

  var body_dim = document.viewport.getDimensions();
  var body_scroll = document.viewport.getScrollOffsets();
  var body_w = body_dim.width;
  var body_h = body_dim.height;
  var body_t = body_scroll.top;


  if ( lb_exists == 1 ) {

    var lb_left_end = (body_w/2)-(boxWidth/2);
    var lb_top_end = (body_h/3)-(boxHeight/2) + body_t;
    if ( lb_top_end < 10 ) { lb_top_end = 10 }

    var str_style =
        'width:' + boxWidth + 'px;'
      + 'height:' + boxHeight + 'px;'
      + 'left:' + lb_left_end + 'px;'
      + 'top:' + lb_top_end + 'px;'
      ;

    var str_style_2 =
        'width:' + parseFloat(boxwidth-40) + 'px;'
      + 'height:' + boxHeightInner + 'px;'
      ;

    var f_finish = function() {
      if ( message != '' ) {
        $(lb_inner_id).update(message);
        $(lb_inner_id).removeClassName('waitmode');
      }
      $('lb_closer' + lb_id_post).addClassName('lb_shown');
      $('lb_head' + lb_id_post).addClassName('lb_shown');

      if ( lb_id == i_lb_id ) {
        lb_arr[0] = boxWidth;
        lb_arr[1] = boxHeight;
        lb_arr[2] = lb_left_end;
        lb_arr[3] = lb_top_end;
      }

      if ( typeof( f_passthrough ) == 'function' ) { f_passthrough(); }
    };

    $(lb_inner_id).style.width = lb_arr[0]-40 + 'px';
    $(lb_inner_id).style.height = lb_arr[1]-68 + 'px';

    new Effect.Morph(lb_id, { style: str_style, duration: lb_ani_speed });
    new Effect.Morph(lb_inner_id, { style: str_style_2, duration: lb_ani_speed, afterFinish: f_finish });

  }
  else {

    var lb_w_init = 150;
    var lb_h_init = 150;

    var lb_left_init = (body_w/2)-(lb_w_init/2);
    var lb_left_end = (body_w/2)-(boxWidth/2);
    var lb_top_init = (body_h/3)-(lb_h_init/2) + body_t;
    var lb_top_end = (body_h/3)-(boxHeight/2) + body_t;
    if ( lb_top_end < 10 ) { lb_top_end = 10 }

    lightbox.style.left = lb_left_init + 'px';

    document.getElementsByTagName('body')[0].appendChild(lightbox);

    lightbox.style.width = lb_w_init + 'px';
    lightbox.style.height = lb_h_init + 'px';
    lightbox.style.top = lb_top_init + 'px';
    $(lb_inner_id).style.width = lb_w_init-40 + 'px';

    var str_style =
        'width:' + boxWidth + 'px;'
      + 'height:' + boxHeight + 'px;'
      + 'left:' + lb_left_end + 'px;'
      + 'top:' + lb_top_end + 'px;'
      ;

    var str_style_2 =
        'width:' + parseFloat(boxwidth-40) + 'px;'
      + 'height:' + boxHeightInner + 'px;'
      ;

    var f_finish = function() {

      if ( message != '' ) {
        $(lb_inner_id).update(message);
        $(lb_inner_id).removeClassName('waitmode');
      }
      $('lb_closer' + lb_id_post).addClassName('lb_shown');
      $('lb_head' + lb_id_post).addClassName('lb_shown');

      if ( lb_id == i_lb_id ) {
        lb_arr[0] = boxWidth;
        lb_arr[1] = boxHeight;
        lb_arr[2] = lb_left_end;
        lb_arr[3] = lb_top_end;
      }

      if ( typeof( f_passthrough ) == 'function' ) { f_passthrough(); }
    };

    new Effect.Morph(lb_id, { style: str_style, duration: lb_ani_speed });
    new Effect.Morph(lb_inner_id, { style: str_style_2, duration: lb_ani_speed, afterFinish: f_finish });

  }

}

function positionBox(el,w,h) {
  if (!w) { w = el.style.width.replace('px','') }
  if (!h) { h = el.style.height.replace('px','') }
  var viewport = document.viewport.getDimensions();
  el.style.top = ( (((viewport.height/3)-(h/2)) < 10 ) ? 10 : Math.round((viewport.height/3)-(h/2)) ) + 'px';
  el.style.left = ( Math.round((viewport.width/2)-(w/2)) ) + 'px';
}

function getBrowserWindowSize() {

  var xScroll, yScroll;

  if (window.innerHeight && window.scrollMaxY) {
	  xScroll = window.innerWidth + window.scrollMaxX;
	  yScroll = window.innerHeight + window.scrollMaxY;
  }
  else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
	  xScroll = document.body.scrollWidth;
	  yScroll = document.body.scrollHeight;
	  }
	else {
    // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
	  xScroll = document.body.offsetWidth;
	  yScroll = document.body.offsetHeight;
  }

  var windowWidth, windowHeight;

  if (self.innerHeight) {	// all except Explorer
	  if(document.documentElement.clientWidth){
		  windowWidth = document.documentElement.clientWidth;
	  } else {
		  windowWidth = self.innerWidth;
	  }
	  windowHeight = self.innerHeight;
  }
  else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
	  windowWidth = document.documentElement.clientWidth;
	  windowHeight = document.documentElement.clientHeight;
  }
  else if (document.body) { // other Explorers
	  windowWidth = document.body.clientWidth;
	  windowHeight = document.body.clientHeight;
  }

  // for small pages with total height less then height of the viewport
  if(yScroll < windowHeight) { pageHeight = windowHeight; }
  else { pageHeight = yScroll; }

  // for small pages with total width less then width of the viewport
  if(xScroll < windowWidth) { pageWidth = xScroll; }
  else { pageWidth = windowWidth; }

  var rval = {width:pageWidth,height:pageHeight};
  return rval;
}

function hideLightBox(id) {
  if ( $(id) ) {
    document.body.removeChild($(id));
    lb_count--;
    if (lb_count==0) { grayOut(false); }
  }
}

function checkValidMailAddress( stringToCheck ) {
	var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	if (filter.test(stringToCheck)) return true;
	else return false;
}

function limitNrOfChars(field, countfield, maxlimit) {
  // if too long...trim it!
  if (field.value.length > maxlimit)
    field.value = field.value.substring(0, maxlimit);
  else
    if ( $(countfield) ) {
      $(countfield).innerHTML = maxlimit - field.value.length + ' karakters over';
    }
}

function trim(value_to_trim) {
  value_to_trim = value_to_trim.replace(/^\s+/,'');
  value_to_trim = value_to_trim.replace(/\s+$/,'');
  return value_to_trim;
}

function checkleapyear(yeartocheck) {
	yeartocheck = parseInt(yeartocheck);
	if (yeartocheck%4 == 0) {
		if (yeartocheck%100 != 0) {
      return 1
    }
		else {
			if (yeartocheck%400 == 0) {
        return 1
        }
	    else {
        return 0
      }
		}
	}
  return 0;
}

function emailCheck (emailStr) {

  var str_return = '';
  var emailPat=/^(.+)@(.+)$/;
  var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]";
  var validChars="\[^\\s" + specialChars + "\]";
  var quotedUser="(\"[^\"]*\")";
  var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
  var atom=validChars + '+';
  var word="(" + atom + "|" + quotedUser + ")";
  var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
  var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");

  var matchArray=emailStr.match(emailPat);
  if (matchArray==null) {
  	str_return += "<div>&#155; Je e-mailadres lijkt niet correct te zijn (controleer de @ en de punten...).</div>";
    return str_return;
  }
  var user=matchArray[1];
  var domain=matchArray[2];

  // See if "user" is valid
  if (user.match(userPat)==null) {
    str_return += "<div>&#155; Het gedeelte in je e-mailadres voor de @ lijkt niet in orde te zijn.</div>";
    return str_return;
  }

  var IPArray=domain.match(ipDomainPat);
  if (IPArray!=null) {
  	for (var i=1;i<=4;i++) {
  	  if (IPArray[i]>255) {
        str_return += "<div>&#155; Het ip-adres in je e-mailadres is niet correct.</div>";
  		  return str_return;
  	  }
    }

  }

  var domainArray=domain.match(domainPat);
  if (domainArray==null) {
    str_return += "<div>&#155; Het gedeelte in je e-mailadres achter de @ lijkt niet in orde te zijn.</div>";
    return str_return;
  }

  var atomPat=new RegExp(atom,"g");
  var domArr=domain.match(atomPat);
  var len=domArr.length;
  if (domArr[domArr.length-1].length<2 ||
      domArr[domArr.length-1].length>6) {
      str_return += "<div>&#155; Het gedeelte van je e-mailadres achter de (laatste) punt moet eindigen in 2 tot 6 letters.</div>";
      return str_return;
  }

  if (len<2) {
    var errStr="This address is missing a hostname!";
    str_return += "<div>&#155; Het gedeelte van je e-mailadres achter de (laatste) punt moet eindigen in 2 tot 6 letters.</div>";
    return str_return;
  }

  return str_return;

}

function callHelpPopup( helpid ) {
  new Ajax.Request ( '/includes/ajax/ajax_help.asp', { method: 'get', parameters: 'helpid=' + helpid, onComplete: processHelpPopup } );
}

function processHelpPopup(request) {
  var r = request.responseXML;
  var help_title = r.getElementsByTagName("help_title")[0].firstChild.data;
  var help_text = r.getElementsByTagName("help_text")[0].firstChild.data;
  var help_w = r.getElementsByTagName("help_w")[0].firstChild.data;
  var help_h = r.getElementsByTagName("help_h")[0].firstChild.data;
  showMessageBox(help_title, help_text, help_w, help_h,null,'hlp');
}

//////////////////////////////////////////////////////////////////////////
// Make favorite tools                                                  //
//////////////////////////////////////////////////////////////////////////

function cookbook_make_fav( recipe_id ) {

  new Ajax.Request ( '/includes/ajax/ajax_cookbook_make_fav.asp', { method: 'get', parameters: 'recipeid=' + recipe_id, onComplete: processCookbookMakeFav } );
}

function processCookbookMakeFav(request) {

  var r = request.responseXML;
  var recipe_id = r.getElementsByTagName("recipe_id")[0].firstChild.data;
  var recipe_fav = r.getElementsByTagName("recipe_fav")[0].firstChild.data;

  if ( $('cookbook_fav_' + recipe_id) ) {

    var recipe_fav_marker = '<span class="fav_no"><img src="/i/elements/members/icon_nonfav.gif" alt="plaats dit recept bij mijn favoriete recepten" /></span>';
    if ( recipe_fav == 1 ) { recipe_fav_marker = '<span class="fav_yes"><img src="/i/elements/members/icon_fav.gif" alt="verwijder dit recept uit mijn favoriete recepten" /></span>' }

    var el_recipe_fav = $('cookbook_fav_' + recipe_id);
    el_recipe_fav.innerHTML = recipe_fav_marker;

  }
  else if ( $('tool_fav') ) {

    var el_recipe_fav = $('tool_fav');

    if ( recipe_fav == 1 ) {
      el_recipe_fav.innerHTML = 'verwijder dit recept uit<br />mijn favoriete recepten';
      el_recipe_fav.className = 'tool_fav_true';
    }

    else {
      el_recipe_fav.innerHTML = 'plaats dit recept bij<br />mijn favoriete recepten';
      el_recipe_fav.className = 'tool_fav_false';
    }

  }

}

//////////////////////////////////////////////////////////////////////////
// Account                                                              //
//////////////////////////////////////////////////////////////////////////

// account_new_check
function account_new_check() {

  //alert('account_new_check');

  account_ok = 0;
  account_parts_checked = 0;
  var str_debug = '';

  var el_form = document.frm_subscribe;
  var el_form_fields = el_form.elements;

  var el_div_intro = $("frm_subscribe_intro");
  var el_div_error_holder = $("frm_subscribe_errors_holder");
  var el_div_error = $("frm_subscribe_errors");

  $("btnsubmit_holder").style.display = 'none';
  $("btnsubmit_holder_wait").style.display = 'block';

  el_div_error.innerHTML = '';


  var el_field;
  var el_field_id;
  var el_field_value = '';

  var el_field_value;
  var el_field_datatype;
  var el_field_fieldtype;
  var el_field_required;
  var radiogroup;
  var radiogroupchecked = 0;

  var field_errors = 0;
  var field_errors_total = 0;
  var error_txt = '';

  str_debug += 'Aantal: ' + el_form_fields.length;
  //alert(str_debug);

  // check all fields, except ingredient fields
  for (var i = 0; i < el_form_fields.length; i++) {

    el_field = el_form_fields[i];
    el_field_id = el_form_fields[i].id;
    el_field_fieldtype = el_field.type;

    if ( el_field_id.indexOf('var_', 0) == 0 ) {

      el_field_value = el_form[el_field_id].value;
      el_field_required = el_form['required_' + el_field_id].value;
      el_field_datatype = el_form['datatype_' + el_field_id].value;

      field_errors = 0;

      if ( el_field_required == 1 ) {

        if ( el_field_fieldtype == 'radio' ) {

          radiogroup = el_form_fields[el_form_fields[i].name];
          radiogroupchecked = 0;
          for(var j = 0 ; j < radiogroup.length ; ++j) {
            if (radiogroup[j].checked) {
              radiogroupchecked++;
            }
          }

          if (radiogroupchecked == 0) { field_errors++ }

        }

        else if ( el_field.type == 'text' ) {
          if ( trim(el_field_value) == '' ) { field_errors++ }
        }

      }




      str_debug += '\n' + el_form_fields[i].id;
      if ( field_errors == 0 ) {
        //alert(el_field_id + ' -> zoeken ' + el_field_id.replace('var_','lbl_'));
        if ( $(el_field_id.replace('var_','lbl_')) ) { $(el_field_id.replace('var_','lbl_')).className = '' }
        if ( el_field_fieldtype != 'radio') {
          $(el_field_id).className = $(el_field_id).className.replace(' frm_error', '');
        }
        str_debug += ' -> ok';
      }
      else {
        field_errors_total++;
        if ( $(el_field_id.replace('var_','lbl_')).className.indexOf('lbl_error') == -1 ) { $(el_field_id.replace('var_','lbl_')).className = 'lbl_error' }
        if ( el_field_fieldtype != 'radio') {
          if ( $(el_field_id).className.indexOf('frm_error') == -1 ) { $(el_field_id).className += ' frm_error' }
        }
        str_debug += ' -> error';
      }

      //str_debug += ' -> ' + $(el_field_id).className;

    }

  }



  // Email address check
  el_field_email = el_form['var_member_Email'].value;

  if ( el_field_email != '' ) {

    emailOK = emailCheck(el_field_email);
    //alert(emailOK);

    if ( emailOK != '' ) {
      error_txt += '' + emailOK;
      field_errors_total++;
      //alert(error_txt);
      if ( $('lbl_member_Email').className.indexOf('lbl_error') == -1 ) { $('lbl_member_Email').className = 'lbl_error' }
      if ( $('var_member_Email').className.indexOf('frm_error') == -1 ) { $('var_member_Email').className += ' frm_error' }
      account_parts_checked++;
    }
    else if ( el_field_email != '' ) {
      // Check if account exists
      $('email_check').innerHTML = '&#155; controle e-mailadres <img src="/i/elements/bullets/dots_wait.gif" \/>';
      $('email_check').style.display = 'block';
      check_account_exists(el_field_email,-1);
    }

  }
  else {
    account_parts_checked++;
  }





  // Password(s) check
  el_field_password = el_form['var_member_Password'].value;
  el_field_password_check = el_form['var_member_Password2'].value;

  if ( (el_field_password != el_field_password_check) || (el_field_password == '') ) {

    if ( el_field_password != el_field_password_check ) {
      str_debug += '\n\npasswords matchen niet';
      error_txt += '<div>&#155; Je passwords zijn niet gelijk.</div>';
    }
    else {
      str_debug += '\n\ngeen password ingevuld';
      error_txt += '<div>&#155; Je hebt geen password ingevuld.</div>';
    }

    field_errors_total++;

    if ( $('lbl_member_Password').className.indexOf('lbl_error') == -1 ) { $('lbl_member_Password').className = 'lbl_error' }
    if ( $('var_member_Password').className.indexOf('frm_error') == -1 ) { $('var_member_Password').className += ' frm_error' }

    if ( $('lbl_member_Password2').className.indexOf('lbl_error') == -1 ) { $('lbl_member_Password2').className = 'lbl_error' }
    if ( $('var_member_Password2').className.indexOf('frm_error') == -1 ) { $('var_member_Password2').className += ' frm_error' }

  }
  else {

    $('lbl_member_Password').className = '';
    $('lbl_member_Password2').className = '';
    $('var_member_Password').className = $('var_member_Password').className.replace(' frm_error', '');
    $('var_member_Password2').className = $('var_member_Password2').className.replace(' frm_error', '');

  }


  account_parts_checked++;
  //alert('account_parts_checked : ' + account_parts_checked);

  if ( field_errors_total == 0 ) {
    account_ok++;
    if ( account_ok == 2 ) {
      el_form.submit();
    }
  }
  else {
    el_div_error.innerHTML = '<div>&#155; Niet alle verplichte velden zijn (correct) ingevuld.</div>' + error_txt;
    el_div_error_holder.className = 'frm_subscribe_errors_holder_shown';
    el_div_error.className = 'frm_subscribe_errors_shown';
    el_div_intro.className = 'frm_subscribe_intro';
  }

  if ( account_parts_checked == 2 ) {
    $("btnsubmit_holder").style.display = 'block';
    $("btnsubmit_holder_wait").style.display = 'none';
  }

}

function getCheckAccountExistsResult() {

  //alert(member_exists_check);
  return member_exists_check;

}

function populateDaysField() {

  var el_form = document.frm_subscribe;
  var val_year = document.frm_subscribe.var_member_DateOfBirthY.options[document.frm_subscribe.var_member_DateOfBirthY.options.selectedIndex].value;
  var el_month = document.frm_subscribe.var_member_DateOfBirthM;
  var el_day = document.frm_subscribe.var_member_DateOfBirthD;
  var el_day_selected = 0;
  var d_max = 0;
  var leap = checkleapyear(val_year);

  if (el_month.options[1].selected) {
    if ( leap == 1 ) {
      d_max = 29 }
    else {
      d_max = 28 }
  }
  else if ( el_month.options[8].selected || el_month.options[3].selected || el_month.options[5].selected || el_month.options[10].selected ) {
    d_max = 30;
  }

  else {
    d_max = 31;
  }

  el_day_selected = el_day.options.selectedIndex;
  if ( (Number(el_day_selected)+1) > d_max ) { el_day_selected = d_max-1 }


  for (i=30; i>=0; i--) {
    el_day.options[i] = null;
  }

  for (var i=0; i<d_max; i++) {
	  var x = String(i+1);
	  el_day.options[i] = new Option(x);
	}

  //alert(el_day_selected);

  el_day.options[el_day_selected].selected = true;

}

function check_account_exists( email, memberid ) {

  if ( email != '' ) {
    $('email_check').innerHTML = '&#155; controle e-mailadres <img src="/i/elements/bullets/dots_wait.gif" />';
    new Ajax.Request ( '/includes/ajax/ajax_check_account_exists.asp', { method: 'get', parameters: 'email=' + email + '&memberid=' + memberid, onComplete: processCheckAccountExists } );
  }

}

function processCheckAccountExists(request) {

  var result = request.responseXML.getElementsByTagName("respons")[0].firstChild.data;
  if ( result == 0 ) { setTimeout("setAccountExistsAlert(0);",100); }
  else { setTimeout("setAccountExistsAlert(1);",100); }

}

function setAccountExistsAlert( alert ) {

  var el_div_error_holder = $("frm_subscribe_errors_holder");
  var el_div_error = $("frm_subscribe_errors");
  var el_form = document.frm_subscribe;

  if ( alert == 0 ) {

    $('email_check').innerHTML = '';
    el_div_error.innerHTML = el_div_error.innerHTML.replace('<div>&#155; Je e-mailadres bestaat reeds in onze database. <a href="/leden/mailmijnpassword.asp">Klik hier</a> om je password naar jezelf te mailen.</div>', '');
    el_div_error_holder.className = 'frm_subscribe_errors_holder_shown';
    el_div_error.className = 'frm_subscribe_errors_shown';
    account_ok++;
  }
  else {

    $('email_check').innerHTML = '';

    if ( el_div_error.innerHTML.indexOf('&#155; Je e-mailadres bestaat reeds in onze database') == -1 ) {
      el_div_error.innerHTML += '<div>&#155; Je e-mailadres bestaat reeds in onze database. <a href="/leden/mailmijnpassword.asp">Klik hier</a> om je password naar jezelf te mailen.</div>';
    }
    el_div_error_holder.className = 'frm_subscribe_errors_holder_shown';
    el_div_error.className = 'frm_subscribe_errors_shown';


    if ( $('lbl_member_Email').className.indexOf('lbl_error') == -1 ) { $('lbl_member_Email').className = 'lbl_error' }
    $('var_member_Email').className = $('var_member_Email').className.replace(' frm_error', '');


  }

  //$("btnsubmit_holder").style.display = 'block';
  //$("btnsubmit_holder_wait").style.display = 'none';

  account_parts_checked++;
  //alert('account_parts_checked : ' + account_parts_checked);

  if ( account_ok == 2 ) {
    el_form.submit();
  }
  else if ( account_parts_checked == 2 ) {
    $("btnsubmit_holder").style.display = 'block';
    $("btnsubmit_holder_wait").style.display = 'none';
  }


}

function check_tipwin() {

  var str_debug = '';
  var lines_used = 0;
  var lines_used_ok = 0;
  var field_errors = 0;
  var error_missing_data = 0;
  var error_email = 0;
  var error_txt = '';

  var el_form = document.frm_tipwin;
  var el_form_fields = el_form.elements;
  var el_div_error = $("topwin_errors");
  var el_div_intro_extr = $("topwin_intro_ext");
  var el_div_error_holder = $("topwin_errors_holder");

  var el_field_name;
  var el_field_name_value;
  var el_field_email;
  var el_field_email_value = '';

  for (i=1; i<=5; i++) {

    field_errors          = 0;
    el_field_name         = el_form['var_tipwin_name_' + i];
    el_field_email        = el_form['var_tipwin_email_' + i];
    el_field_name_value   = el_field_name.value + '';
    el_field_email_value  = el_field_email.value + '';
    el_field_email_value  = trim(el_field_email_value);

    if ( el_field_name_value + el_field_email_value != '' ) {
      lines_used++;
      if ( el_field_name_value == '' ) { field_errors++; error_missing_data++ }
      if ( el_field_email_value == '' ) {
        field_errors++; error_missing_data++; }
      else {
        if ( emailCheck(el_field_email_value) != '' ) { field_errors++; error_email++; } }
      if ( field_errors == 0 ) { lines_used_ok++; }
    }

    //field_errors_total = field_errors_total + field_errors;

  }


  if ( (lines_used == lines_used_ok) && (lines_used > 0) ) {
    el_form.submit();
  }
  else {

    if ( lines_used == 0 ) { error_txt+= '<div>&#155; Je hebt geen namen en e-mailadressen ingevuld.</div>'; }
    if ( error_missing_data != 0 ) { error_txt+= '<div>&#155; Vul op elke regel zowel een naam als een e-mailadres in.</div>'; }
    if ( error_email != 0 ) { error_txt+= '<div>&#155; Niet alle e-mailadressen lijken correct te zijn.</div>'; }

    el_div_error.innerHTML = '<div>Niet alle velden zijn correct ingevuld.</div>' + error_txt;

    el_div_intro_extr.className = 'topwin_intro';
    el_div_error_holder.className = 'topwin_errors_holder_shown';
    el_div_error.className = 'topwin_errors_shown';
  }


}

function account_edit_check() {

  account_ok = 0;
  account_parts_checked = 0;
  var str_debug = '';

  var el_form = document.frm_subscribe;
  var el_form_fields = el_form.elements;

  var el_div_intro = $("frm_subscribe_intro");
  var el_div_error_holder = $("frm_subscribe_errors_holder");
  var el_div_error = $("frm_subscribe_errors");

  $("btnsubmit_holder").style.display = 'none';
  $("btnsubmit_holder_wait").style.display = 'block';

  el_div_error.innerHTML = '';




  var el_field;
  var el_field_id;
  var el_field_value = '';
  var el_field_datatype;
  var el_field_fieldtype;
  var el_field_required;
  var radiogroup;
  var radiogroupchecked = 0;

  var field_errors = 0;
  var field_errors_total = 0;
  var error_txt = '';

  str_debug += 'Aantal: ' + el_form_fields.length;
  //alert(str_debug);

  // check all fields
  for (var i = 0; i < el_form_fields.length; i++) {

    el_field = el_form_fields[i];
    el_field_id = el_form_fields[i].id;
    el_field_fieldtype = el_field.type;

    if ( el_field_id.indexOf('var_', 0) == 0 ) {

      el_field_value = el_form[el_field_id].value;
      el_field_required = el_form['required_' + el_field_id].value;
      el_field_datatype = el_form['datatype_' + el_field_id].value;

      field_errors = 0;

      if ( el_field_required == 1 ) {

        if ( el_field_fieldtype == 'radio' ) {

          radiogroup = el_form_fields[el_form_fields[i].name];
          radiogroupchecked = 0;
          for(var j = 0 ; j < radiogroup.length ; ++j) {
            if (radiogroup[j].checked) {
              radiogroupchecked++;
            }
          }

          if (radiogroupchecked == 0) { field_errors++ }

        }

        else if ( el_field.type == 'text' ) {
          if ( trim(el_field_value) == '' ) { field_errors++ }
        }

      }


      str_debug += '\n' + el_form_fields[i].id;
      if ( field_errors == 0 ) {
        //alert(el_field_id + ' -> zoeken ' + el_field_id.replace('var_','lbl_'));
        if ( $(el_field_id.replace('var_','lbl_')) ) { $(el_field_id.replace('var_','lbl_')).className = '' }
        if ( el_field_fieldtype != 'radio') {
          $(el_field_id).className = $(el_field_id).className.replace(' frm_error', '');
        }
        str_debug += ' -> ok';
      }
      else {
        field_errors_total++;
        if ( $(el_field_id.replace('var_','lbl_')).className.indexOf('lbl_error') == -1 ) { $(el_field_id.replace('var_','lbl_')).className = 'lbl_error' }
        if ( el_field_fieldtype != 'radio') {
          if ( $(el_field_id).className.indexOf('frm_error') == -1 ) { $(el_field_id).className += ' frm_error' }
        }
        str_debug += ' -> error';
      }

    }

  }





  // Email address check
  el_field_memberid = el_form['member_id'].value;
  el_field_email = el_form['var_member_Email'].value;


  if ( el_field_email != '' ) {

    emailOK = emailCheck(el_field_email);
    //alert(emailOK);

    if ( emailOK != '' ) {
      error_txt += '' + emailOK;
      field_errors_total++;
      if ( $('lbl_member_Email').className.indexOf('lbl_error') == -1 ) { $('lbl_member_Email').className = 'lbl_error' }
      if ( $('var_member_Email').className.indexOf('frm_error') == -1 ) { $('var_member_Email').className += ' frm_error' }
      account_parts_checked++;
    }
    else {
      // Check if account exists
      $('email_check').innerHTML = '&#155; controle e-mailadres <img src="/i/elements/bullets/dots_wait.gif" \/>';
      $('email_check').style.display = 'block';
      check_account_exists(el_field_email,el_field_memberid);
    }

  }
  else {
    account_parts_checked++;
  }




  // Password(s) check
  el_field_password = el_form['var_member_Password'].value;
  el_field_password_check = el_form['var_member_Password2'].value;

  if ( ( el_field_password != '' ) && ( el_field_password_check != '' ) ) {

    if ( (el_field_password != el_field_password_check) || (el_field_password == '') ) {

      if ( el_field_password != el_field_password_check ) {
        str_debug += '\n\npasswords matchen niet';
        error_txt += '<div>&#155; Je passwords zijn niet gelijk.</div>';
      }
      else {
        str_debug += '\n\ngeen password ingevuld';
        error_txt += '<div>&#155; Je hebt geen password ingevuld.</div>';
      }

      field_errors_total++;

      if ( $('lbl_member_Password').className.indexOf('lbl_error') == -1 ) { $('lbl_member_Password').className = 'lbl_error' }
      if ( $('var_member_Password').className.indexOf('frm_error') == -1 ) { $('var_member_Password').className += ' frm_error' }

      if ( $('lbl_member_Password2').className.indexOf('lbl_error') == -1 ) { $('lbl_member_Password2').className = 'lbl_error' }
      if ( $('var_member_Password2').className.indexOf('frm_error') == -1 ) { $('var_member_Password2').className += ' frm_error' }

    }
    else {

      $('lbl_member_Password').className = '';
      $('lbl_member_Password2').className = '';
      $('var_member_Password').className = $('var_member_Password').className.replace(' frm_error', '');
      $('var_member_Password2').className = $('var_member_Password2').className.replace(' frm_error', '');

    }

  }



  account_parts_checked++;
  //alert('account_parts_checked : ' + account_parts_checked);

  if ( field_errors_total == 0 ) {
    account_ok++;
    if ( account_ok == 2 ) {
      el_form.submit();
    }
  }
  else {
    el_div_error.innerHTML = '<div>&#155; Niet alle verplichte velden zijn (correct) ingevuld.</div>' + error_txt;
    el_div_error_holder.className = 'frm_subscribe_errors_holder_shown';
    el_div_error.className = 'frm_subscribe_errors_shown';
    el_div_intro.className = 'frm_subscribe_intro';
  }

  if ( account_parts_checked == 2 ) {
    $("btnsubmit_holder").style.display = 'block';
    $("btnsubmit_holder_wait").style.display = 'none';
  }



}

function mailmijnpassword_check() {

  $("btnsubmit_holder").style.display = 'none';
  $("btnsubmit_holder_wait").style.display = 'block';

  var el_form = document.frm_subscribe;
  var el_div_intro = $("frm_subscribe_intro");
  var el_div_error_holder = $("frm_subscribe_errors_holder");
  var el_div_error = $("frm_subscribe_errors");
  var field_errors_total = 0;

  el_field_email = el_form['var_member_Email'].value;

  if ( el_field_email != '' ) {

    emailOK = emailCheck(el_field_email);

    if ( emailOK != '' ) {

      field_errors_total++;
      if ( $('lbl_member_Email').className.indexOf('lbl_error') == -1 ) { $('lbl_member_Email').className = 'lbl_error' }
      if ( $('var_member_Email').className.indexOf('frm_error') == -1 ) { $('var_member_Email').className += ' frm_error' }

      el_div_error.innerHTML = emailOK;
      el_div_error_holder.className = 'frm_subscribe_errors_holder_shown';
      el_div_error.className = 'frm_subscribe_errors_shown';
      el_div_intro.className = 'frm_subscribe_intro';

    }

  }
  else {

    field_errors_total++;
    el_div_error.innerHTML = 'Je hebt geen e-mailadres ingevuld.';
    el_div_error_holder.className = 'frm_subscribe_errors_holder_shown';
    el_div_error.className = 'frm_subscribe_errors_shown';
    el_div_intro.className = 'frm_subscribe_intro';

    if ( $('lbl_member_Email').className.indexOf('lbl_error') == -1 ) { $('lbl_member_Email').className = 'lbl_error' }
    if ( $('var_member_Email').className.indexOf('frm_error') == -1 ) { $('var_member_Email').className += ' frm_error' }

  }



  if ( field_errors_total == 0 ) {
    el_form.submit();
  }
  else {
    $("btnsubmit_holder_wait").style.display = 'none';
    $("btnsubmit_holder").style.display = 'block';
  }


}














function hideMemberLoginBox() {
  alert('hideMemberLoginBox called... moet deze niet weg?');
  if ( $('popuploginbox') ) {
    document.body.removeChild($('popuploginbox'));
    grayOut(false);
  }
}

function hideMessageBox(id) {
  alert('functie hideMessageBox... mag weg?');
  if ( $(id) ) { document.body.removeChild($(id)); grayOut(false); }

}

function TO_REMOVE_toggleMessageBoxWaitMode( waitmode ) {
	if ( waitmode == 'on' ) {
		$('popupmessagebox_contents_wait').style.display = 'block';
		$('popupmessagebox_contents').style.display = 'none';
	}
	else {
		$('popupmessagebox_contents_wait').style.display = 'none';
		$('popupmessagebox_contents').style.display = 'block';
	}
}
