$(document).ready(function() {
  $('form a.button[href=#submit]').click(fakeSubmitForm);
  $('form').submit(ajaxifyForm);
//  $('form button').css({'display':'none'});
//  $('form a.button').css({'display':'inline'});
  $('a.button[href=#open_form]').bind('click', openChatForm);
  $('#chat_mee_form,#deel_inspiratie_form,#periodiek_form').css({'display':'none'})
  $('form input[type=text], form textarea').focus(focusInput);
  $('form input[type=text], form textarea').blur(blurInput);
  initInputs();

  $('#faq_list dt').click(toggleFaqItem);
});

function toggleFaqItem(evt)
{
  var elm = $(this);
  var panel = $(elm).next('dd');
  panel.slideToggle('fast')
  return false;
}

function initInputs()
{
  $('form input[type=text], form textarea').each(function(i, elm) {
    $(elm).attr('default_value', $(elm).val());
  });
}

function focusInput(evt)
{
  var elm = $(this);
  if(elm.attr('default_value') && elm.attr('default_value') == elm.val()) {elm.val('');} else {elm.select();}
}

function blurInput(evt)
{
  var elm = $(this);
  if(elm.val() == '') {elm.val(elm.attr('default_value'));}
}

function openChatForm(evt)
{
  var elm = $(this);
  elm.parents('p').prev('div').slideDown('fast', function() {
    elm.find('span:first').html('Sluit formulier');
  });
  elm.unbind('click');
  elm.bind('click', {'originalText' : elm.find('span:first').html()}, closeChatForm);
  return false;
}

function closeChatForm(evt)
{
  var elm = $(this);
  elm.find('span:first').html(evt.data.originalText);
  elm.parents('p').prev('div').slideUp('fast');
  elm.unbind('click');
  elm.bind('click', openChatForm);
  return false;
}

function fakeSubmitForm(evt)
{
  var form = $(this).parents('form');
//console.log(form)
  $(form).trigger('submit');
}

function ajaxifyForm(evt)
{
  var form = $(this);
  if(!$(form).validate()) {
    return false;
  } else {
    return true;
  }
}

(function($) { 
  $.fn.validate = function() {
    var result = [];
    $(this).find('li.required input,li.required textarea,li.required select').each(function(i, elm) {
      if($(elm).is('input[type=text], textarea')) {
        if($(elm).val() != '' && $(elm).val() != $(elm).attr('default_value')) {
          $($(elm).parents('li.required').get(0)).removeClass('notvalid');
          result.push(true);
        } else {
          $($(elm).parents('li.required').get(0)).addClass('notvalid');
          result.push(false);
        }
      }
    });
    return (result.inArray(false) == -1) ? true : false;
  }
})(jQuery)

Array.prototype.inArray = function(val) { for (var i in this) { if (this[i] === val) return i; } return -1; }
