function saveMessage(message) {
	
	if(!message || message == "") {
		message = 'De gegevens zijn met succes opgeslagen.';
	}
	
	var div = $('#profile-saved');
	
	if(!div.length) {
		div = $('<div id="profile-saved"><div class="wrapper"></div><div class="close"></div></div>');
		//div.attr('id','profile-saved');
		
		$('body').prepend(div);
		$('#profile-saved .close').click(function() {
			div.fadeOut();
		});
	}
	div.find('.wrapper').html(message);
	div.fadeIn();
	
	//$('#profile-saved').fadeIn();
	
	setTimeout(function(){ 
		div.fadeOut();
	}, 3000);
}

var photo_uploader = function() {
	$('a#image_uploader').click(function(ev) {
		ev.preventDefault();
		var shadow = $('<div id="image_uploader_shadow"></div>').appendTo('body #container');	
		var div = $('<div id="image_uploader_div"><div class="close"></div></div>');
		div.appendTo('body #container');
		$.ajax(
			{
				url: '/users/image_uploader/',
				cache: false,
				complete: function(jqXHR, textStatus) {
					div.append(jqXHR.responseText);
				}
			}
		);
	});
}

$(document).ready(function(){
		
	// Balloon bij expert detail klikbaar
	$('div.article-question').click(function (ev) {
		window.location = $(this).attr('rel');
	});
	
	
	var menuHeight = 36;
	
	$('#header .drop-content, #header .menu-drop').click(function(ev) {
		ev.stopPropagation();
		//ev.preventDefault();
	});
		
	var closeDropdown = function(aElm,container) {
		$('.drop-content .close').unbind('click').click(function(ev) {
			ev.preventDefault();
			ev.stopPropagation();
			$('#container').unbind('click');
			$(this).unbind('click').hide();
			animateProfileDrop(aElm,container);
		});
		
		$('.menu .close').unbind('click').click(function(ev) {
			ev.preventDefault();
			ev.stopPropagation();
			$('#container').unbind('click');
			$(this).unbind('click').hide();
			container.animate({
				top: '-' + (container.outerHeight() - menuHeight) + 'px'
			}, function() { 
				container.hide(); 
				forgotPassword.show(); 
			});
		});
		
		
		$('#container').unbind('click').click(function() { 
			$('.drop-content .close, .menu .close').click();
			$('#container').unbind('click');
		});
		
		
	}
	
	var updateScrollIcons = function() {
		var ul = $('#UserEditForm .tags ul');
		var margintop = ul.css('marginTop').replace('px', '')*1;
		
		// update down button
		if (margintop >= 0) {
			$('#UserEditForm .tags .nav a.up').css('visibility', 'hidden');
		} else {
			$('#UserEditForm .tags .nav a.up').css('visibility', 'visible');
		}
		
		// update up button
		if (margintop + ul.height() - 38 < $('#UserEditForm .tags').height()) {
			$('#UserEditForm .tags .nav a.down').css('visibility', 'hidden');
		} else {
			$('#UserEditForm .tags .nav a.down').css('visibility', 'visible');
		}
	}
	
	var scrollTags = function(direction) {
		var ul = $('#UserEditForm .tags ul');
		
		if (ul.queue("fx").length > 0) return;
		
		if (direction == 'bottom') {
			var amount = (ul.css('marginTop').replace('px', '')*1 + ul.height()) - $('#UserEditForm .tags').height();
			amount = Math.floor(amount / 38) * 38;
			
			amount = ul.css('marginTop').replace('px', '')*1 - amount;
			if (amount > 0) amount = 0;
			if (ul.queue("fx").length == 0) {
				ul.animate({marginTop: amount + "px"}, 'fast', updateScrollIcons);
			}
		}
		
		if (direction == 'down') {
			if (ul.css('marginTop').replace('px', '')*1 + ul.height() - 38 >= $('#UserEditForm .tags').height())
				ul.animate({marginTop: "-=38px"}, 'fast', updateScrollIcons);
		}
		
		if (direction == 'up') {
			if (ul.css('marginTop').replace('px', '')*1 + 38 <= 0)
				ul.animate({marginTop: "+=38px"}, 'fast', updateScrollIcons);
		}
	}
		
	$('#menu li').hover(
		function() {
			$(this).addClass('hover');
		},
		function() {
			$(this).removeClass('hover');
		}
	);
	
	jQuery.fn.tooltip = function(text) {
		
		var tooltip = $('#tooltip');		
		
		$(this).hover(
			function() {
				var pos = $(this).offset();
				tooltip.find('.inner').text(text);
				var height = tooltip.height();
				tooltip.css('top', pos.top - height -3).css('left', pos.left - 28).show();
			},
			function() {
				tooltip.find('.inner').text('');
				tooltip.hide();
			}
		);
	}
	
	// User list
	/*
	$('#users-list span.job-title-and-company').each(function() {
		$(this).tooltip($(this).text());
	});
	*/
	
	// Wizard step 2
	$('#QuestionAddSecondStepForm a.button.next').click(function() {
		$('#QuestionAddSecondStepForm').submit();
		return false;
	});	
	
	var addTag = function(tagName) {
		
		tagName = tagName.replace(",","");
		
		// In lijst toevoegen
		var ul = $('#UserEditForm .tags ul');
		
		ul.show().append('<li><img class="delete" src="/img/layout/delete-tag.png" /><a href="">' + tagName + '</a></li>');
		scrollTags('bottom');
		
		// Opslaan in DB
		if (tagName != '') {
			saveTags(tagName + ',' + $('input[name="data[User][tags]"]').val());
		}
		
		$('div.tags .delete').unbind('click').click(function (ev) {
			//alert('delete tag');
			
			deleteTag($(this).parent());

			ev.preventDefault();
		});
		
		$('div.tags li a').click(function (ev) {
			ev.preventDefault();
		})
	}
	
	var saveTags = function(saveTags,deleteTag) {
		
		//var currentTags = $('input[name="data[User][tags]"]').val();
		
		if(deleteTag && deleteTag.length) {
			var deleteTagName = deleteTag.val();
		} else {
			var deleteTagName = '';
		}

		$.post('/users/save_tags',{"data[User][tags]": saveTags,deleteTag: deleteTagName},function (data) {
			
			if(data.saved) {
				//alert('opgeslagen');
				if(deleteTag && deleteTag.length) {
					deleteTag.hide('fast', function() { 
						$(this).remove(); 
						scrollTags('bottom');
					});
				}
				
				$('input[name="data[User][tags]"]').val(saveTags);
			}
			else
			{
				
			}
			
		},'json');
	}
	
	var deleteTag = function(deleteTag) {
		
		var currentTags = $('input[name="data[User][tags]"]').val();
		
		var deleteTagName = deleteTag.find('a').text();
		
		saveTags(currentTags.replace(deleteTagName,""),deleteTag);
	}
	
	var profileActions = function (aElm,container) {
		
		closeDropdown(aElm,container);
		
		$('#UserEditForm .tags .nav a.up').click(function(ev) {
			scrollTags('up');
			ev.preventDefault();
		});

		$('#UserEditForm .tags .nav a.down').click(function(ev) {
			scrollTags('down');
			ev.preventDefault();
		});
		
		$('div.tags .delete').click(function (ev) {
			//alert('delete tag');
			
			deleteTag($(this).parent());

			ev.preventDefault();
		});
		
		$('div.tags a').click(function (ev) {
			ev.preventDefault();
		});
		
		updateScrollIcons();
		
		$('.fieldset.my-topics div.input a.button').click(function (ev) {

			//alert('Opslaan: ' + $('#UserTag').val());
			
			var currentTags = $('input[name="data[User][tags]"]').val();
			var newTag = $('input[name="data[User][tag]"]').val();
			
			// Nieuwe tag input value legen
			
			if (newTag != '') {
				$('input[name="data[User][tag]"]').val("");
				addTag(newTag);
			}
									
			ev.preventDefault();
		})

		$('form#UserEditForm').submit(function (ev) {

			// @todo ombouwen naar JSON + handling
			$.post($(this).attr('action'), $(this).serialize(), function (data) {
				
				if (data['error']) {
					var text = '';
					$('form#UserEditForm input').removeClass('form-error');
					for (var i in data['errorPerField']) {
						$('form#UserEditForm input[name="data[User][' + i +']"]').addClass('form-error');
						if (text == '') text = $('form#UserEditForm input[name="data[User][' + i +']"]').parent().find('label').text() + ': ' + data['errorPerField'][i];
					}
					$('#header #profile-drop div#authMessage').text(text).show();
					//saveMessage(text);
					
				} else {
					$('#container').unbind('click');
					$('form#UserEditForm input').removeClass('form-error');
					$('#header #profile-drop div#authMessage').hide();
					// Formulier hiden na opslaan
					container.animate({
						top: '-' + (container.outerHeight() - menuHeight) + 'px'

						}, function () {
							animateProfileDrop(aElm,container);
							saveMessage();
						});
					
				}
			}, 'json');

			ev.preventDefault();
		});
		
		// Formulier submitten met oranje button
		$('#UserEditForm .submit .button').click(function (ev) {
			
			$('form#UserEditForm').submit();
			
			ev.preventDefault();
		});
		
		photo_uploader();
	}
	

	
	var preferencesActions = function(aElm,container) {
		
		closeDropdown(aElm,container);
		
		$('.preferences input[type=checkbox]').checkBox();
	
		// Preferences Formulier submitten met oranje button
		$('.preferences .submit .button').click(function (ev) {
			
			ev.preventDefault();

			$('form#UserPreferencesForm').submit();
		});
		
		$('form#UserPreferencesForm').submit(function (ev) {

			//alert($(this).serialize());
			//@todo ombouwen naar JSON + handling
			$.post($(this).attr('action'), $(this).serialize(), function (data) {
				
				// Formulier hiden na opslaan
				container.animate({
					top: '-' + (container.outerHeight() - menuHeight) + 'px'

				},function () {
					animateProfileDrop(aElm,container);

					saveMessage();
				});
			});

			ev.preventDefault();
		});
		
		// Wachtwoord formulier verzenden
		$('.change-password .submit .button').click(function (ev) {
			
			ev.preventDefault();
			
			$('form#UserChangePasswordForm').submit();
		});
		
		$('form#UserChangePasswordForm').submit(function (ev) {

			
			//alert($(this).serialize());
			
			//alert($(this).attr('action'));
			
			// @todo ombouwe naar JSON + handling
			$.post($(this).attr('action'), $(this).serialize(), function (data) {
				
				// Formulier hiden na opslaan
				if (data.toLowerCase() === 'ok') {
					$('#header #profile-drop div#authMessage').hide();
					$('#container').unbind('click');
					container.animate({
						top: '-' + (container.outerHeight() - menuHeight) + 'px'

						},function () {
							animateProfileDrop(aElm,container);
							$('#header #profile-drop div#authMessage').hide();
							saveMessage('Je wachtwoord is aangepast.');
						});
				} else {
					$('form#UserChangePasswordForm input').addClass('form-error');
					if (data.toLowerCase() === 'nomatch') {
						$('#header #profile-drop div#authMessage').text('De nieuwe wachtwoorden zijn niet hetzelfde').show();
						//saveMessage('De nieuwe wachtwoorden zijn niet hetzelfde');
					} else {
						$('#header #profile-drop div#authMessage').text('Je wachtwoord kon niet worden aangepast.').show();
						//saveMessage('Je wachtwoord kon niet worden aangepast.');
					}
				}
			});

			ev.preventDefault();
		});		
		
		/*
		$('#profile-drop a.delete').click(function (ev) {

			//alert($(this).serialize());
			
			$.get($(this).attr('href'), function (data) {
				$('#profile-drop .drop-content').html(data);
			});

			ev.preventDefault();
		});
		*/
	}
	
	var animateProfileDrop = function (aElm,container) {
	
		if (aElm.attr('active')) {
			aElm.removeAttr('active');
			
			// Naar boven + icon aanpassen
			aElm.css('background','url("/img/layout/icon-dropdown.png") no-repeat right');
			
			container.animate({
				top: '-' + (container.outerHeight() - menuHeight) + 'px'
			},function () {
				
			});
			
			$('#container').unbind('click');
			
			// Shaduw van profile box aanpassen naar eentje zonder schaduw, dit ivm met schaduw
			// die anders blijft staan.
			container.find('.drop-footer').css({
				background: 'url("/img/layout/profile-footer-noshadow.png") no-repeat'
			});
			
		} else {
			
			//$('#user-menu .menu').appendTo('#profile-drop .drop-footer');
			
			$('#user-menu a').removeAttr('active');
			
			aElm.attr('active',1);
			
			$.ajax({
				url: aElm.attr('href'),
				cache: false,
				dataType: "html",
				success: function(data) {
					
					container.find('.drop-content').html(data);
					
					container.find('.drop-footer').css({
						background: 'url("/img/layout/profile-footer.png") no-repeat'
					});

					container.css({
						top: '-' + (container.outerHeight() - menuHeight) + 'px'
					});
					
					// Naar beneden droppen + icon aanpassen
					aElm.css('background','url("/img/layout/icon-dropup.png") no-repeat right');
					
					container.show().animate({
						top: '0px'
					});

					switch(aElm.attr('class'))
					{
						case 'profile':
							profileActions(aElm,container);
						break;
						case 'preferences':
							preferencesActions(aElm,container);
						break;
					}
					
				}
			});
			
		}
	}
	
	$('#user-menu a.preferences, #user-menu a.profile').click(function (ev) {
		
		ev.preventDefault();
		
		var container = $('#header #profile-drop');
	
		if(parseInt(container.css('top')) >= 0) {
		
			var aElm = $(this);

			// Eerst actieve page omhoog sliden
			// Sneller (200 MS) als normaal (500 MS)
			var activeMenu = $('#user-menu a[active]');
			
			if(activeMenu.length) {
				// Icon van actieve menu aanpassen
				activeMenu.css('background','url("/img/layout/icon-dropdown.png") no-repeat right');
			}
			
			container.animate({
				top: '-' + (container.outerHeight() - menuHeight) + 'px'
				
			},200,function () {
				animateProfileDrop(aElm,container);
			});
		}
		else
		{	
			// Er is geen ander venster open
			animateProfileDrop($(this),container);
		}
		
	});
	
	var forgotPasswordOpen = false;
	
	var openForgotPassword = function(aElm) {
		
		var container = $('#user-menu .menu-drop');
		$('.menu .close').show();
		
		// Eerst de login hiden
		container.animate({
			top: '-' + container.outerHeight() + 'px'
		},function () {
			container.hide();
			
			$.ajax({
				url: aElm.attr('href'),
				cache: false,
				dataType: "html",
				success: function(data) {
					container.html(data).show().animate({
						top: '0px'
					},function () {
						
						closeDropdown(aElm,container);
						
						forgotPasswordOpen = true;
						
						$('div.send .button').click(function (ev) {
							ev.preventDefault();
							
							$('form#UserForgotPasswordForm').submit();
						});
						
						$('form#UserForgotPasswordForm').submit(function (ev) {
						
							ev.preventDefault();
						
							$.post($(this).attr('action'),$(this).serialize(),function (data) {
								
								if(data.ok) {
									$('.menu-drop div.forgotpassword').html('Het nieuwe wachtwoord is naar het ingevulde e-mailadres verstuurd.');
									$('.menu-drop div.feedback').hide();
								} 
								if(data.ok == false) {
									$('.menu-drop div.feedback').html('Het opgegeven e-mailadres is niet bekend').show();
								}
								if(data.error) {
									$('.menu-drop div.feedback').html(data.error).show();
								}
								
							},'json');
						});
						
					});
					
					
				}
			});
		});
	}
	
	// Wachtwoord vergeten in login menu
	var forgotPassword = $('#forgot-password');
	
	forgotPassword.find('a').click(function (ev) {
		openForgotPassword($(this));
		
		ev.preventDefault();
	});
	
	var initLoginScreen = function(container, data) {
		if (data.toLowerCase() == 'ok') {
			location.reload(true);
			return;		
		} else {
			container.html(data);
		}
		
		closeDropdown(false,container);
		$('.menu .close').show();
		
		$('div.forgot-password a').click(function (ev) {
			openForgotPassword($(this));
			ev.preventDefault();
		});
		
		$('form#UserLoginForm').ajaxform({
			onSuccess: function(data) {
				initLoginScreen(container, data['returnData']);
			}
		});

		$('form#UserLoginForm .submit a').click(function (ev) {
			ev.preventDefault();	
		});
		
		$('form#UserLoginForm .input input').keyup(function(e) {
			if(e.keyCode == 13) {
				$('form#UserLoginForm').submit();
			}
		});

		container.show().animate({
			top: '0px'
		});
	}
	
	$('#user-menu a.login').click(function(ev) {

		ev.preventDefault();
		
		var container = $('#user-menu .menu-drop');
		
		if(forgotPasswordOpen) {
			
			// Wachtwoord vergeten is open eerst hiden
			container.animate({
				top: '-' + container.outerHeight() + 'px'
			},function () {
				container.hide();
				
				forgotPasswordOpen = false;
				
				// Wachtwoord vergeten is gesloten
				// Opnieuw de klik triggeren
				$('#user-menu a.login').trigger('click');
			});
		}
		else
		{
			if (container.is(':visible')) {

				container.animate({
					top: '-' + container.outerHeight() + 'px'
				},function () {
					container.hide();
				});

				forgotPassword.show();
			} else {	

				$.ajax({
					url: $(this).attr('href'),
					cache: false,
					dataType: "html",
					success: function(data) {	
						container.css({top: '-' + container.outerHeight() + 'px'});	
						initLoginScreen(container, data);
					}
				});

				forgotPassword.hide();
			}
		}

	});
	
	// Delete profile
	$('#UserDeleteForm a.button').click(function(ev) {
		$('#UserDeleteForm').submit();
		ev.preventDefault();
	});
	
	// General hover
	$('.ui-hover').live('mouseenter', function() {
		$(this).addClass('hover');
	});
	
	$('.ui-hover').live('mouseleave', function() {
		$(this).removeClass('hover');
	});	

	//Experts
	$('#experts-view a.less,#expert-article-tab a.less').click(function(ev) {
		ev.preventDefault();
		var container = $(this).parent().parent().parent();
		container.find('.trun').show();
		container.find('.expanded').hide();
	});
	
	$('#experts-view a.more,#expert-article-tab a.more').click(function(ev) {
		ev.preventDefault();
		var container = $(this).parent().parent().parent();
		container.find('.trun').hide();
		container.find('.expanded').show();
	});
	
	
	$('#question-view div#expert-reactions div.text a.openExpert').click(function (ev) {
		//ev.preventDefault();
		
		//alert('click');
		
		$('#question-view .tabs a#expert-article').trigger('click');
	})

	
	$('img').error(function() {
		$(this).attr('src', '/img/layout/resized/87_87/no-image.jpg');
	});
	
	$('#flashMessage').each(function() {
		saveMessage($(this).text());
	});
	
});

function checkSocialLink(elm,goodUrl) {
	
	if(elm.val() != "")
	{
		if(elm.val().match("\/"))
		{
			var username = elm.val().split("/").pop();
		
			elm.val(goodUrl + username);
		}
		else
		{
			elm.val(goodUrl + elm.val());
		}
	}
	
}

function autoIframe(frame)
{
    try {
        //objToResize.height = 1;
        innerDoc = (frame.contentDocument) ? frame.contentDocument : frame.contentWindow.document;
        objToResize = (frame.style) ? frame.style : frame;
        objToResize.height = innerDoc.body.scrollHeight + 10 + 'px';
    }
    catch (err) {
        window.status = err.message;
    }
}

