function validate_email(email)
	{
	var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
	return emailReg.test(email);
	}

(function ($) {
  // Log all jQuery AJAX requests to Google Analytics
  $(document).ajaxSend(function(event, xhr, settings){
    if (typeof _gaq!=='undefined' && _gaq!==null) {_gaq.push(['_trackPageview', settings.url]);}
  });
})(jQuery);

$(document).ready(function() {
	
	jQuery.fn.reverse = function() {
	    return this.pushStack(this.get().reverse(), arguments);
	};
	
	jQuery.fn.equalHeights = function(px) {
		$(this).each(function(){
			var currentTallest = 0;
			$(this).children().each(function(i){
				if ($(this).height() > currentTallest) { currentTallest = $(this).height(); }
			});
			if (!px || !Number.prototype.pxToEm) currentTallest = currentTallest.pxToEm(); //use ems unless px is specified
			// for ie6, set height since min-height isn't supported
			if ($.browser.msie && $.browser.version == 6.0) { $(this).children().css({'height': currentTallest}); }
			$(this).children().css({'min-height': currentTallest}); 
		});
		return this;
	};

	if($('#ajax_return').length==0)
		{
		var ajax_return = "<div id='ajax_return'><span></span></div>";
		$('body').append(ajax_return);
		}

	$('#ajax_loader').hide().ajaxStart(function() {
			$(this).fadeIn();
		})
		.ajaxStop(function() {
			$(this).hide();
		});

	function message_return(status,message)
		{
		var ajax_return = $('#ajax_return');
		ajax_return.children('span').attr('class',status);
		ajax_return.children('span').text(message);
		if(status=='error')	{delay = 5000;} else {delay = 1000;}
		ajax_return.stop(true).fadeIn(500).animate({opacity: 1.0}, delay).fadeOut(500);
		}

	$('#tinyfeedback button').click(function(event){		
		event.preventDefault();
		var node     = $('#tinyfeedback');
		var to       = node.find('.to').val();
		var nodefrom = node.find('.from');
		var nodemess = node.find('.message');
		var messtype = node.find('.messtype').val();
		var from     = nodefrom.val();
		var message  = nodemess.val();
		var email    = nodefrom.val();
		var complete = true;
		var dataString = node.serialize();
		
		if(message.length==0)
			{
			nodemess.css('color','White');
			nodemess.css('background-color','Red');
			message_return('error','Gelieve een bericht in te geven');
			complete = false;
			//alert('foo');
			}
		else if(messtype=='email' && (!validate_email(email) || email.length==0))
			{
			nodefrom.css('color','White');
			nodefrom.css('background-color','Red');
			message_return('error','Onjuist e-mail adres.');
			complete = false;
			//alert('bar');
			}
			
		if(complete==true)
			{
			//alert('sending');
			sendMessage(to,message,from,dataString);
			node.hide();
			node.before("<p style='color:Yellow'>Merci voor jouw feedback! Respect.</p>");
			}
	});
	
	$('#tinyfeedback .message').focus(function(){
		$(this).css('color','Black');
		$(this).css('background-color','Silver');
		$(this).next().slideDown('fast');
	});
	
	$('#tinyfeedback .from').focus(function(){
		$(this).css('color','Black');
		$(this).css('background-color','Silver');
	});
	
	function sendMessage(to,message,from)
		{
		$.post('ajax.php',
		{action:'sendUserMessage',q:to,string:message,term:from},
		function(data) {
			if(data=='true')
				{
				message_return('success',"Send successfully!");
				}
			else if(data=='false')
				{
				message_return('error',"Error sending!");
				}
			else
				{
				message_return('error',data);
				}
			}
		);
		}
	
	/*sending user message from the contact dialog on a user's profile*/
	/*TODO e-mail validation*/
	sendUserMessage = function() {		
		var node     = $('#contact_dialog');
		var to       = node.find('.to').val();
		var nodefrom = node.find('.from');
		var nodemess = node.find('.message');
		var messtype = node.find('.messtype').val();
		var from     = nodefrom.val();
		var message  = nodemess.val();
		var email    = nodefrom.val();
		var complete = true;
		var dataString = node.serialize();
		//alert('to:'+to+' from:'+from+' message:'+message);
		
		if(message.length==0)
			{
			nodemess.css('color','White');
			nodemess.css('background-color','Red');
			message_return('error','Onjuist e-mail adres');
			complete = false;
			}
		else if(messtype=='email' && (!validate_email(email) || email.length==0))
			{
			nodefrom.css('color','White');
			nodefrom.css('background-color','Red');
			message_return('error','Gelieve een bericht in te geven.');
			complete = false;
			}
		
		if(complete==true)
			{
			sendMessage(to,message,from,dataString);
			}
	}

});
