$(function(){
	clear_inputs_on_focus();
	stafInitialize();
	setSelectAllButton(0, 0);
	
	// enable charts for already opened paragraphs
	$('.paragraph-inner-row.open').each(function(){
		obj =	$(this).children('.user-content')
		enable_charts_images(obj);
		$('img' , this).show('slow');
		
	});
	enable_charts_images($('#part-intro.user-content'));
	
	// we need JS for the menu ! 
	$("#myreport label, #nav-main-tabs, #content label").show();
	$("noscript").hide();
	
	$(".tooltip").tooltip({cssClass:"tooltip-haven"});
	
	// crumpath	
	//$("#crumbpath").jBreadCrumb();

	// custom checkboxs
	$("span.checkbox, span.groupcheckbox").hover(
      function () {
		if(!$(this).hasClass("subchecked") && !$(this).hasClass("checked")) {
			o = $(this).offset();
			$('.checkboxpopup').css( { 'left': o.left-45, 'top': o.top-57 } );
			$('.checkboxpopup').show();
		}
      }, 
      function () { $('.checkboxpopup').hide(); }
    );

	$("span.checkbox, span.groupcheckbox, span.checkico").click(function() { Checkbox(this) })

	// Switch naar my report
	$('#btn_myreport').click( function() {
		view = set_myreport_view('myreport');
		
		$('#nav-main-tabs li').removeClass('selected');
		$('#nav-main-tabs li.myreport').addClass('selected');
		$('#myreport .selectall, #myreport label').show();
		$('#myreport').removeClass("normal");
		
		$('#savemail .selectall, #savemail label').show();
		$('#savemail').removeClass("normal");
		
		return false;
	});

	// Switch naar normaal
	$('#btn_total').click( function() {
		view = set_myreport_view('total');
	 
		$('#nav-main-tabs li').removeClass('selected');
		$('#nav-main-tabs li.total').addClass('selected');
		$('#myreport').addClass("normal");
		$('#myreport .selectall, #myreport label').hide();
		
		$('#savemail').addClass("normal");
		$('#savemail .selectall, #savemail label').hide();
		
		return false;
	});
	
	// Selectall 
	$('#btnselectall, #deselect, #btnselectshort').click( function() {
		var navigatie_id = $(this).attr('name');
		var deselect = 0;
		var selectshort = 0;
		
		resetSelection();
		
		// (SVO) set extra paramater to send with ajax call when short selection is made
		if ($(this).attr('id') == 'btnselectshort') {
			selectshort = 1;
		}
		
		if ($(this).attr('id') == 'deselect') {
			deselect = 1;
		}
		
		// (SVO) don't forget extra paramater when short selection is made
		$.getJSON('/ajax/add_item.ajax.php', {navigatie_id: navigatie_id, selectshort: selectshort, deselect : deselect}, function(data) {
			for (i = 0; i < data.status_array.length; i++) {
				objects = "#checkico-"+data.status_array[i]['navid']+", #checkbox-"+data.status_array[i]['navid']+", #groupcheckbox-"+data.status_array[i]['navid'];
				
				switch(data.status_array[i]['status']) {
					case "checked":
						$(objects).removeClass("unchecked subchecked").addClass("checked");
						break;
					
					case "subchecked":
						$(objects).removeClass("unchecked checked").addClass("subchecked");
						break;
					
					default:
						$(objects).removeClass("subchecked checked").addClass("unchecked");
				}				
			}
			
			setSelectAllButton(selectshort, deselect);
			$("#myreporttotals").text(data.total_page_count);
		});
		
		return false;
	});
	

	// Send to a friend button
	$("#btnstaf").click( function() { 
		$.nvsOverlay.show({speed: 500, callback : function() { 
			$("#frm-staf").clearForm();
				
			$("#frm-staf .succesfield").hide();
			$("#frm-staf #error").hide();
			$("#frm-staf .formfield").show();
			$("#frm-staf *").removeClass("error");
	
			$("#frm-staf").show();
			$("#frm-staf .formfield").show();
			
	   		o = $("#btnstaf").offset();
			$("#staf").css( { 'left': o.left + 22 , 'top': o.top - $('#staf').height()-10 }).show();
			$("#nvs_overlay").click( function() { $("#staf").hide(); $.nvsOverlay.hide(); } ) 								   
		}});
		return false;
	}); 

	$(".paragraph-inner-row").mouseover( 
		function() { 
			if(!$(this).hasClass('open')) {
				$(this).addClass('hover');
				$(this).css({ cursor: 'pointer'});
				$(this).click(function() { 
					$(this).removeClass('hover'); 
					$('h2 a', this).trigger('click'); 
					$(this).unbind('click'); 
				});
			}
		}).mouseout( 
		function () {
			$(this).removeClass('hover');
			$(this).css({ cursor: 'auto'});
			$(this).remove
		}
	);
	

	
	// Paragraph open / close
	$(".paragraph-inner-row h2 a").click( function() {
		if(!$(this).parents('.paragraph-inner-row:first').hasClass('open')) {
			$(".paragraph-inner-row").removeClass('open');
			disable_charts_images($(".paragraph-inner-row .user-content"));
			
			$('#fakeparagraph').html('');
			$('#fakeparagraph').html($(this).parent().parent().children('.user-content').html());
			$('#fakeparagraph .graph-container').show();
			$('#fakeparagraph img').show();
			h = $('#fakeparagraph').height();
				
			$(".paragraph-inner-row .user-content img").hide('fast');
			$(".paragraph-inner-row .user-content").stop(true, true).animate( {height: '48px'}, 500);
			
			
			$(this).parent().parent().children('.user-content').stop(true, true).animate( {height: h }, 500, function() {
				enable_charts_images(this);
				//enable_images(this);
				$('img' , this).show('slow');
			});
			$(this).parents('.paragraph-inner-row:first').addClass('open') 
		} else {
			disable_charts_images($(this).parent().parent().children('.user-content'));
				//disable_images(this);
			$(".paragraph-inner-row .user-content img").hide('fast');
			$(this).parent().siblings('.user-content').stop(true, true).animate( {height: '48px'}, 500);
			$(this).parents('.paragraph-inner-row:first').removeClass('open');
		}
		return false;
	});
	                              
    
    function mycarousel_initCallback(carousel) {
		$('#mycarousel li a:visible').click(function() {
			carousel.next();
		});	
	};		

	$('#mycarousel').jcarousel({
		vertical: true,
		scroll: 1
	});
	
	$('#mycarousel li a').click(function() {
		rel = $(this).attr('rel');
		$(this).parent().parent().find('a').removeClass('active');
		$(this).addClass('active');
		$('.graph-image').attr('id', 'grafiek'+rel);
		$('.graph-image').empty();
		$.getScript('/js/grafieken/grafiek'+rel+'.js', function() { eval('grafiek'+rel+'()'); });
		
		return false;
	});
    
});

function resetSelection() {
	$("#myreport .checkico").removeClass("subchecked checked").addClass("unchecked");
	$("#deselect").removeClass('hidden');
	$("#btnselectall").addClass('hidden');
	$("#myreporttotals").text("0");
}

function setSelectAllButton(selectshort, isSelected) {
	var checked_count = $("#myreport .checkico.checked").length + $("#myreport .checkico.subchecked").length;
	isSelected = 0;
	if (checked_count > 0) {
		isSelected = 1;
	}
	
	if ((!$('.checkico').hasClass("subchecked") && !$('.checkico').hasClass("unchecked")) || (selectshort == 1 || isSelected == 1)) {
		$('#btnselectall').addClass('hidden');
		$('#deselect').removeClass('hidden');
		
	} else {
		$('#btnselectall').removeClass('hidden');
		$('#deselect').addClass('hidden');
	}
}


function add_item(navigatie_id) {
	$.get('/ajax/add_item.ajax.php', {navigatie_id: navigatie_id}, function(data) {
		if (data == 'delete') {
			$('#item_'+navigatie_id).html('<img src="/img/checkbox_verwijderen.gif" />');
		} else {
			$('#item_'+navigatie_id).html('<img src="/img/checkbox_toevoegen.gif" />');
		}
	})
}

// Clear input fields on focus
function clear_inputs_on_focus () {
	$("input[type=text].clearfocus").focus(function () { 
		if(!$(this).attr("startvalue")) {  
			$(this).attr("startvalue", $(this).val());
		} 
		if($(this).val() == $(this).attr("startvalue")) {
			$(this).val('');	
		}
	}).blur(function () { 
		if($(this).val() == '') {
			$(this).val($(this).attr("startvalue"));
		}
	});
}

// Enable paragraph charts and images
function enable_charts_images(obj) {
	$('.graph-container', obj).show();
	$('.graph-image', obj).each( function() {
		eval($(this).attr('id')+"()");
		
	
	});
}

function disable_charts_images(obj) {
	$('.graph-image', obj).each( function() { 
		$(this).empty(); 
	});
	$('.graph-container', obj).hide();	
} 

/*
* Initialize Send to a friend
*/

function stafInitialize() {

	$("#frm-staf .close-btn").click(function() { 
		$('#staf, #frm-staf .succesfield').hide();
		$.nvsOverlay.hide();
	});
	$('#frm-staf .cancel').click(function () { 
		$('#staf, #frm-staf .succesfield').hide();
		$.nvsOverlay.hide();
		return false;
	});
	
	$('#frm-staf').submit( function() {
		$("#frm-staf .formfield").hide();
		var	formValues = $("form").serialize();
		$.getJSON("/ajax/staf.ajax.php?" + Math.random(), formValues, function(data) { 
			$("#frm-staf label").removeClass("error");
			$("#frm-staf #error").hide();
			if(data.verstuurd == "false") {
				for (i = 0; i < data.velden.length; i++ ) {
					selector = "#frm-staf #lbl_" + data.velden[i];
					$(selector).addClass("error");
				}  
				
				$("#frm-staf #error").show();
				$("#frm-staf .formfield").show();
			
			} else {
				$("#emailadres_ontvanger").html(data.emailadres);
				$("#frm-staf .succesfield").show();
			}
		});
		
		return false;
	});
}

/**
*  checkbox functionality
*/  

function Checkbox(obj) {
	
	$(obj).removeClass("checked subchecked unchecked").addClass("animate");
	navigatie_id = $(obj).attr("name");
	
	$.getJSON('/ajax/add_item.ajax.php', {navigatie_id: navigatie_id}, function(data) { 
		for(i=0; i < data.status_array.length; i++) {
			objects = "#checkico-"+data.status_array[i]['navid']+", #checkbox-"+data.status_array[i]['navid']+", #groupcheckbox-"+data.status_array[i]['navid'];
			
			switch(data.status_array[i]['status']) {
				case "checked":
					$(objects).removeClass("unchecked subchecked").addClass("checked");
					$('.checkboxpopup').hide();
					break;
				
				case "subchecked":
					$(objects).removeClass("unchecked checked").addClass("subchecked");
					break;
				
				default:
					$(objects).removeClass("subchecked checked").addClass("unchecked");				 
					if(!$(obj).hasClass("checkico")) {
						o = $(obj).offset();
						$('.checkboxpopup').css( { 'left': o.left-45, 'top': o.top-57, 'display': 'block' } );
						$('.checkboxpopup').show();
					}
			}	
		};
		
		setSelectAllButton();
		$(obj).removeClass("animate");
		$("#myreporttotals").text(data.total_page_count);
		
		//switch view port
		view = set_myreport_view('myreport');
		
		$('#nav-main-tabs li').removeClass('selected');
		$('#nav-main-tabs li.myreport').addClass('selected');
		$('#myreport .selectall, #myreport label').show();
		$('#myreport').removeClass("normal");
		
		$('#savemail .selectall, #savemail label').show();
		$('#savemail').removeClass("normal");
	});
	
}

/**
* NVS OVERLAY
*/

(function($) {
 
	$.nvsOverlay= { 
	
		/**
		 * Show the overlay with default settings or the given params
		 * Also binds window resizing to overlayResize
		 * @param 	Object		background string (cssProperty), speed int (milliseconds), transparancy decimal (between 0 and 1), callback function
		 */

		show : function (options) {
		
			// default settings	
			var defaults = {
				background: 'black',
				speed: 1500,
				height: this.overlayHeight(),
				transparancy: '0.4',
				callback: false
			};	
			options = $.extend(defaults, options);
		
			//hide elements that show through the overlay in IE 6
			if($.browser.msie && $.browser.version <= 6) {
				$('embed, object, select').css({ 'visibility' : 'hidden' });
			} 
			
			//add overlay to the DOM
			$('<div></div>').attr({
							id: 'nvs_overlay' 
							})
						.css({
							position: 'absolute',
							top: 0,
							left: 0,
							height: options.height,
							width: '100%',
							zIndex: '9999',
							opacity: '0',
							background: options.background
							})
						.appendTo('body')
						.fadeTo(options.speed, options.transparancy, options.callback);
	
		// bind resize function on window resize event, this will reposition the overlay when window resizes or scrolls
			$(window).bind('resize', this.overlayResize);		
		},
		
		/**
		* Hides the overlay and unbinds window resize method
		*/
		
		hide :	function () { 
			if($('#nvs_overlay')){
				// first fade and remove on callback
				$('#nvs_overlay').fadeTo('slow', 0, function () { 
					$('#nvs_overlay').remove();
					$('embed, object, select').css({ 'visibility' : 'visible' });
				});
			}
			$(window).unbind('resize', this.overlayResize);
		},
		
		/**
		* Resizes the overlay bound to resize event of the window DOM element
		*/
		
		overlayResize : function() {
			$('#nvs_overlay').css({ width: 0, height: 0 });
			oheight = $.nvsOverlay.overlayHeight();
			$('#nvs_overlay').css({	width: '100%', height: oheight });
		},
		
		/**
		 * Calculates the height of the overlay 
		 * @returns 	INT		Height of the window or document DOM element
		*/
		
		overlayHeight : function () {

			if($(document).height() > $(window).height()) {
				oHeight = $(document).height()
			} else {
				oHeight = $(window).height();	
			}
			
			return oHeight;
		}
		
	}
	
})(jQuery);

/**
 *
 * Check of het samengestelde jaarverslag al gegenereerd is. 
 * 
 * @author Erik Brabander <erik@netvlies.nl>
 * @param string hash De hash van het samengestelde jaarverslag.
 *
 */
 
function check_pdf(hash) {
	$.get('/ajax/check_pdf.ajax.php', {hash: hash}, function(data) {
			if (data == 'gevonden') {
				$('#genereer_loader').hide();
				$('#genereer_voltooid').show();
			} else {
				setTimeout("check_pdf('"+hash+"');", 5000);
			}
		}
	);
}

/**
 *
 * Sla de keuze op in de sessie. 
 * 
 * @author Erik Brabander <erik@netvlies.nl>
 * @param string view De gekozen view.
 * @return json string Confirmation van het opslaan
 *
 */
 
function set_myreport_view(view) {
	$.get('/ajax/myreport_view.ajax.php', {view: view}, function(data){
		//alert(data);
	});
}

/**
 *
 * reset een form
 * 
 * @author Sebastiaan Smid <sebastiaan@netvlies.nl>
 *
 */
 
$.fn.clearForm = function() {
	return this.each(function() {
		var type = this.type, tag = this.tagName.toLowerCase();
		if (tag == 'form')
			return $(':input',this).clearForm();
		if (type == 'text' || type == 'password' || tag == 'textarea')
			this.value = '';
		else if (type == 'checkbox' || type == 'radio')
			this.checked = false;
		else if (tag == 'select')
			this.selectedIndex = -1;
	});
};


