var nl = true;

$(document).ready(function() {
  input_text_labels();
  
  nl = ($('body.english').length == 0);

  $('table.workshops tr:odd').addClass('even');

  $('body.inschrijven table.workshops tr:not(.vol)').hover(
    function() { $(this).addClass('hover') },
    function() { $(this).removeClass('hover') }
  ).click(function() {
    $(this).addClass('selected').siblings('tr').removeClass('selected');
    var workshop = $('strong', this).attr('workshop');
    $(this).parents('div.sessie').find('input:hidden').val(workshop);
    var workshop_title = $('strong', this).text();
    $(this).parents('div.sessie').find('label em').removeClass('dimmed').text(workshop_title);
    if (workshop != 'geen') {
      var a = $('<a href="#">' + (nl ? 'lees meer' : 'read more') + '</a>').click(function() {
        var w1 = window.open("/workshops/" + workshop + '?tmpl=popup.html', "Workshop", "scrollbars=1, status=0, resizable=1, width=700, height=700");
        w1.focus();
        return false;
      })
      $(this).parents('div.sessie').find('label em').append(a);
    }
    $(this).parents('div.sessie').children('div').slideUp();
  });
  
  $('body.inschrijven table.workshops a, div.sessie label a, div.checkbox a').click(function() {
    var page = $(this).attr('page');
    var w1 = window.open(page + '?tmpl=popup.html', "Workshop", "scrollbars=1, status=0, resizable=1, width=600, height=767");
    w1.focus();
    return false;
  });
  
  $('div.sessie input.button').click(function() {
    $(this).parent('div.sessie').children('div').slideToggle();
  });
  
  $('input[name=machtiging_entree]').click(function() {
    $(this).checked = true;
    return false;
  });
  
  $('input[name=machtiging_kinderen]').click(function() {
    if ($('input:text.kinderen').val() > 0) {
      $(this).checked = true;
      return false;
    }
  });

  $('input:text.kinderen').keyup(function() {
    $('input[name="machtiging_kinderen"]').get(0).checked = ($(this).val() > 0);
  })
  
  $('input:text.relatienummer, input:text.studentnummer, input:text.kinderen, input:text.rekeningnummer').keydown(function(e) {
    return (e.keyCode >= 48 && e.keyCode <= 57 || e.keyCode >= 96 && e.keyCode <= 105 || e.keyCode == 8 || e.keyCode == 37 ||e.keyCode == 39); // 1,2,3,4,5,6,7,8,9, backspace, arrow left/right
  })

  // show/hide relatienummer
  $('form#inschrijven input#lidpvda_ja').click(function() {
    $('#lidpvda_ja_label').text(nl ? 'Ja, relatienummer: ' : 'Yes, relation number: ');
    $('input.text[name=relatienummer]').show();
  });
  $('form#inschrijven input#lidpvda_nee').click(function() {
    $('#lidpvda_ja_label').text(nl ? 'Ja' : 'Yes');
    $('input.text[name=relatienummer]').hide();
  });

  // show/hide studentnummer
  $('form#inschrijven input#student_ja').click(function() {
    $('#student_ja_label').text(nl ? 'Ja, studentnummer: ' : 'Yes, student number');
    $('input.text[name=studentnummer]').show();
  });
  $('form#inschrijven input#student_nee').click(function() {
    $('#student_ja_label').text(nl ? 'Ja' : 'Yes');
    $('input.text[name=studentnummer]').hide();
  });
  
  // klik op label werkt ook
  $('div.radiogroup span').click(function() {
    $(this).prev('input.radio').click();
  });
  
  $('div.checkbox span').click(function() {
    $(this).prev('input.checkbox').click();
  });
  
  // form submit - validate!
  $('form#inschrijven').submit(validate);
  
  $('input.text').focus(function() { $(this).removeClass('error') });
  $('input.radio').click(function() { $(this).parent('div').removeClass('error') });
});

function validate() {
  var errmsg = [];

  $('div.required, form#inschrijven input.required:visible').each(function() {
    var name  = $(this).attr('name');
    var title = $(this).attr('title');
    var error = $(this).attr('errortitle');
    var val   = $(this).val() || $('input:hidden', this).val() || $('input:radio:checked', this).length;
    if (val == '' || val == title) {
      $(this).addClass('error');
      errmsg.push(error || title || name);
    }
  });
  var email = $('input.email').val();
  if (errmsg.length == 0 && !isValidEmailAddress(email)) {
    $('input.email').addClass('error');
    errmsg.push('email');
  }
  var postcode = $('input.postcode').val();
  if (errmsg.length == 0 && nl && postcode.search(/\d\d\d\d\s*[a-zA-Z]{2}/) == -1) {
    $('input.postcode').addClass('error');
    errmsg.push('postcode');
    $('label.postcode').text('onjuiste postcode');
  }
  var gebdatum = $('input.gebdatum').val();
  if (errmsg.length == 0 && nl && gebdatum.search(/\d\d-\d\d-\d\d\d\d/) == -1) {
    $('input.gebdatum').addClass('error');
    errmsg.push('geboortedatum');
    $('label.gebdatum').text('bijvoorbeeld 02-05-1964');
  }
  var rekeningnummer = $('input.rekeningnummer').val();
  if (errmsg.length == 0 && nl && rekeningnummer.length == 0) {
    $('input.rekeningnummer').addClass('error');
    errmsg.push('rekeningnummer');
    $('label.rekeningnummer').text('ongeldig rekeningnummer');
  }
  if (errmsg.length > 0) {
    $('#errmsg').text((nl ? 'Fout: vul ook de volgende velden in: ' : 'Error: fill in these fields: ') + errmsg.join(', '));
    return false;
  }
  return true;
}

function isValidEmailAddress(emailAddress) {
  var pattern = new   RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
  return pattern.test(emailAddress);
}

function input_text_labels() {
  $('input.text').each(function() {
    var defvalue = $(this).attr('title');
    if($.trim(this.value) == "" || this.value == defvalue) {
      this.value = defvalue;
      $(this).addClass('dimmed');
    }

    $(this).focus(function() {
      if(this.value == defvalue) {
        this.value = "";
        $(this).removeClass('dimmed');
        //$(this).removeClass('required');
      }
    });
    
    $(this).blur(function() {
      if($.trim(this.value) == "")
        this.value = defvalue;
      if(this.value == defvalue)
        $(this).addClass('dimmed');
    });
  });
  
}
