/**
 * Namespace "SubClassExample"
 * @class SubClassExample
 * @desc Subclass of Base
 */
Base.LoggedIn = function() {
	// PRIVATE  
	function initFormToggler(){
		/*
		BELANGRIJK NOG MAKEN
		
		als men op een interne link in de faq klikt moet de box openen
		
		*/
		
		$('.form-toggler').each(function(){
			var elem = $(this);
			var form = $(this).find("div.form");
	
			if(! form.hasClass('open') && form.find("div.error").length == 0) {
				form.hide();
				elem.find("a.cancel").hide();
			} else {
				elem.find("h4.add").toggle();
			}
			
			elem.find("a.cancel").click(function(){
				form.hide().toggleClass('open');
				elem.find("h4.add").toggle();
				$(this).toggle();
				return false;
			});
		
			elem.find("h4.add").click(function(){
				form.show().toggleClass('open');
				elem.find("a.cancel").toggle();
				$(this).toggle();
			});
		});
	}
	
	function checkFormForChanges() {
		var form_is_changed = false;
		
		$('body.changecheck form').not('#search').find(':input').change(function(){
			form_is_changed = true;												  
		});
		

		$('a').not('.cancel,.empty-form').click(function() {
			if (form_is_changed == true) {
				var confirmer = confirm('De door jou ingevulde gegevens zijn nog niet opgeslagen. Weet je zeker dat je door wilt gaan?');
				return confirmer;
			}
		});
	}
  
	return {
		// PUBLIC
		
		/**
		 * Initialize this Class
		 */
		init: function() {
      // Create expandable faq panels
      $('.faq')
        .find('h3')
          .prepend('<span class="content-toggler"></span>')
          .find('.content-toggler')
            .hover(
              function(){ $(this).addClass('hover'); },
              function(){ $(this).removeClass('hover'); }
            ).end() // Set mouse-over & go back to first selection
          .end()
        .infoPanel('span.content-toggler, a', 'div.content'); // infoPanel plugin
      
		initFormToggler();
		checkFormForChanges();
      	$('.chart-box').chartPaginator();
		}
	};
}();

/* Initialize this class */
Base.register(Base.LoggedIn.init);

