$(document).ready(function() {
  $('div#tagmenu').webetui_pulldown({aniLen:300, hideDelay:500, slideUp:false, clickA:false });
  $('div#menu1>ul>li:has(ul), div#menu2>ul>li:has(ul)').webetui_pulldown({aniLen:300, hideDelay:500, slideUp:false, clickA:true });
  $('div#menu li ul').show();

  tagmenu('form#zoeken input.text');
  
  // menu actueel heeft geen lastchild entry, voeg zelf lege toe
  $('#menu1 li#actueel .container ul li:last-child').removeClass('lastchild');
  $('#menu1 li#actueel .container ul').append('<li class="lastempty">&nbsp;</li>');
  var h = $('#menu1 li#actueel .container').height();
  $('#menu1 li#actueel .container').height(h + 25);
  
  if ($('body#index div.special').size()) {
    slideshow();
  }
  
  if ($('div.alfabet').size() && $('#webetui_toolbar').length == 0) {
    alfabet();
  }
  
  $('#column div.foto img, #page img').filter(':not(a img)').filter(':not(.nosize)').filter(':not(body#index img, body#special img, .webetui_recaptcha img, body.innuvatie #column img)').filter(':not(#recaptcha_area img)').click(fotozoom);
  
  $('a.geef_reactie').click(function() {
    
    $(this).toggleClass('geef_reactie_show').next('form').toggle();
    return false;
  });
  
  $('a.addthis_button_email').click(function() {
    setTimeout(function() {
      $('h4 span#at16ptc').text('Stuur door per e-mail');
      $('input#at16sub').attr('value', 'Verzend');
    }, 50);
    return false;
  });
  setTimeout(function() {
    $('div.atclear').css('clear', 'left');
  }, 50);

  $('div.orderrandom').each(function() {
    var pintro = $('div.pageintro', this); 
    var items  = pintro.children();
    var array = [];
    for (var i=0; i<items.length; i+=2) {
      var height = $(items[i]).height() + $(items[i+1]).height();
      array.push({ a:items[i], p:items[i+1], h:height });
    }
    pintro.html('');
    array.sort(function() {return 0.5 - Math.random()}); // make random order
    var max = $(this).attr('max');
    for(var i=0; i<array.length && i<max; i++) {
      pintro.append(array[i].a, array[i].p);
    }
    pintro.show();
    // var height = 0;
    // for (var i=0; i<max; i++) {
    //   height += array[i].h;
    // }
    // alert(height);
    // $(this).css('height', height);
  });
  
  var clicked_checkbox = [];
  $('form#formulier.form_wsg input:checked').each(function() {
    clicked_checkbox.push(this);
  });
  $('form#formulier.form_wsg input.checkbox').click(function() {
    clicked_checkbox.unshift(this);
    while (clicked_checkbox.length > 2) {
      var c = clicked_checkbox.pop();
      $(c).attr('checked', false);
    }
  });
  $('form#formulier.form_wsg').submit(function() {
    if ($('form#formulier.form_wsg input.checkbox:checked').length != 2) {
      $('div#error').text("S.v.p. twee workshops aanvinken"); 
      return false;
    };
    // return true;
  });
  
});


function fotozoom() {
  if ($('div#fotozoom').length) {
    $('div#fotozoom').fadeOut("normal", function() { $(this).remove() });
  } else {
    var fotozoom_wrapper = $('<div id="fotozoom_wrapper"/>');
    fotozoom_wrapper.appendTo('#wrapper').fadeIn();

    var fotos = $('div.foto img, div#page img:not(.picnone, .nosize)');
    var nr_fotos = fotos.length;
    var nr = fotos.index(this);
    foto(nr);
  }

  function foto(nr) {
    var fotos = $('div.foto img, div#page img:not(.picnone, .nosize, .webetui_recaptcha img)');
    var cur = fotos.eq(nr);
    
    var fotozoom_old = $('#fotozoom_wrapper #fotozoom');
    
    var title = cur.attr('title');
    var src   = cur.attr('src');
    src = src.replace('foto_cache', 'foto');
    src = src.replace(/_x\d+/, '');
    src = src.replace(/_y\d+/, '');
    var fotozoom = $('<div id="fotozoom"><img src="' + src + '" /><label><a href="/disclaimer">disclaimer</a>' + title + '</label></div>').hide().click(function() {
      $('#fotozoom_wrapper').fadeOut("normal", function() { $(this).remove() });
    });
    var fotoclose = $('<a id="fotoclose" href="#"/>').click(function() {
      $('#fotozoom_wrapper').fadeOut("normal", function() { $(this).remove() });
      return false;   
    });
    fotozoom.append(fotoclose);
    if (nr < fotos.length-1)
      fotozoom.append($('<a id="fotoright" href="#"/>').click(function() { foto(nr+1); return false; }))
    if (nr > 0) {
      fotozoom.append($('<a id="fotoleft"  href="#"/>').click(function() { foto(nr-1); return false; }))
    }
    fotozoom.appendTo('#fotozoom_wrapper').fadeIn(function() {
      if (fotozoom_old.length > 0) 
        fotozoom_old.remove();
    });
//    $('#fotoclose').click(function() { 
//        $('#fotozoom_wrapper').fadeOut("normal", function() { $(this).remove() });   
        // alert('close');
        // $('#fotozoom_wrapper, #fotozoom').fadeOut("normal", function() { $(this).remove() });   
//    });
//    $('#fotozoom, #fotoclose').click(function() { 
//        $('#fotozoom_wrapper').fadeOut("normal", function() { $(this).remove() });   
        // alert('close');
        // $('#fotozoom_wrapper, #fotozoom').fadeOut("normal", function() { $(this).remove() });   
//    });
  }
}

function alfabet() {
  function refresh(letter) {
    $('div.alfabet h3').each(function() {
      var onoff = (letter == $(this).text().substr(0, 1));
      $(this).toggle(onoff).next('p').toggle(onoff);
    });
    $('div#alfabet a').removeClass('selected');
    $('div#alfabet a:contains(' + letter + ')').addClass('selected');
  };
  var alfabet = $('<div id="alfabet"/>');
  var prev = null;
  $('div.alfabet h3').each(function() {
    var letter = $(this).text().substr(0, 1);
    if (letter != prev) {
      $('<a href="#">' + letter + '</a>').click(function() {
        refresh(letter);
        return false;
      }).appendTo(alfabet);
      prev = letter;
    }
  });
  $('div.alfabet').prepend(alfabet);
  refresh('A');
}

function splitmenu() {
  var cnt = $(this).children('li').length;
  if (cnt >= 8) {
    var parent = $(this).parent('li, div#tagmenu, div.container');
    var ul = $('<ul/>').addClass('right');
    $('li:gt(' + parseInt(cnt/2-1) + ')', this).appendTo(ul);
    parent.append(ul);
  }
}

function special() {
  // vakje met tabs toevoegen
  var tabs = $('<div/>').addClass('tabs');
  var message = "";
  $('div.special').each(function(i) {
    var tabname = $('img', this).attr('alt');
    var href    = $('a', this).attr('href');
    var a = $('<a href="' + href + '"/>').text(tabname);
    var page = location.toString();
    if (page.indexOf(href) >= 0) {
      a.addClass('selected');
      $('#page').append($('<div class="specialfoto">').append($('img', this)));
      $('a', this).remove();
      message = $(this).html();
    } else {
      $('img', this).remove();
      $('a', this).remove();
    }
    tabs.append(a);
  });
  $('#page').append($('<div class="skader"/>').append(tabs).append($('<a href="' + href + '" class="message"/>').html(message)));
}

function slideshow() {
  $('#page').append($('<div class="slideshow">').append($('div.special>p>img')));
  
  $('div.slideshow img:eq(0)').addClass('bovenop');
  var img = $('div.slideshow>img');
  var bovenop = 0;
  
  // vakje met tabs toevoegen
  var href = $('div.special>p>a');
  var tabs = $('<div/>').addClass('tabs');
  img.each(function(i) { 
    var tabname = $(this).attr('alt');
    var a = $('<a href="#"/>').text(tabname).click(function() {
      slide(i, true);
      clearInterval(intervalID);
      $(this).blur();
      return false;
    });
    tabs.append(a);
    $(this).click(function() {
      location = $(href.get(i)).attr('href');
    });
    $(this).attr('alt', '');
    $(this).attr('title', '');
  });
  $('#page').append($('<div class="skader"/>').append(tabs).append($('<a href="' + $(href.get(0)).attr('href') + '" class="message"/>')));
  $('div.skader .tabs a:eq(0)').addClass('selected');
  $('div.skader a.message').html($('div.special:eq(0)').html());

  function slide(next, clicked) {
    if (!clicked) {
      next = bovenop+1;
      if (next >= img.size())
        next = 0;
    }
    
    $(img.get(bovenop)).addClass('erachter');
    
    $('div.skader .tabs a').removeClass('selected');
    $('div.skader .tabs a:eq('+ next  +')').addClass('selected');
    
    $('div.skader a.message').attr('href', $(href.get(next)).attr('href')).html($('div.special:eq(' + next + ')').html());
    // $('div.skader div.message').animate({opacity: 0.3}, 300, function() {
    //   $('div.skader div.message').html($('div.special:eq(' + next + ')').html());
    // }).animate({opacity: 1.0}, 300);
    
    $(img.get(next)).css({opacity: 0.0})
      .addClass('bovenop')
      .animate({opacity: 1.0}, 1500, function() {
        $(img.get(bovenop)).removeClass('bovenop erachter');
        bovenop = next;
      });
  }
  var intervalID = setInterval( slide, 10000 );
}

function quote(term) {
  if (term.indexOf(' ') >= 0)
    return '"' + term + '"';
  return term;
}

function tagmenu(input_selector) {
  $(input_selector).keyup(function(e) {
    var letter = this.value;
    // if (letter.length > 0 && e.keyCode != 40 && e.keyCode != 38) {
    if (letter.length > 0 && e.keyCode != 40 && e.keyCode != 38 && e.keyCode != 32) {
      $('div#tagmenu div.container').load('/cgi-bin/ajax.cgi?o=KCWZ::tagmenu&group=inhoud&tag='+letter, '', function() {
        var height = $('div#tagmenu div.container ul').height();
        if (height > 501) height = 501;
        $('div#tagmenu div.container').height(height);
        $('#tagmenu').webetui_pulldown_show();
      });  
    }
  }).keydown(function(e) {
    if (e.keyCode == 40) { // keydown
      var li = $('div#tagmenu li:has(a.selected)');
      if (li.length) {
        var next = li.next('li');
        if (!next.hasClass('lastchild')) {
          $('div#tagmenu li a').removeClass('selected');
          $('a', next).addClass('selected');
        }
      } else {
        $('div#tagmenu li:first-child a').addClass('selected');
      }
      $(this).val(quote($('div#tagmenu li a.selected').text()))
    }
    if (e.keyCode == 38) { // keyup
      var li = $('div#tagmenu li:has(a.selected):not(:first-child)');
      if (li.length) {
        var prev = li.prev('li');
        $('div#tagmenu li a').removeClass('selected');
        $('a', prev).addClass('selected');
      }
      $(this).val(quote($('div#tagmenu li a.selected').text()))
    }
  }).focus(function(e) {
    $('#tagmenu').webetui_pulldown_show();
  });
}


