$(document).ready(

	function()
	{
		initActionForm();
   	}	

);

/* validation functions */

/**
*	check not empty
*
*	check if field is not empty
*/
function checkNotEmpty(str) {

	//trim
	str = str.replace(/^\s+/,'');
  	str = str.replace(/\s+$/,'');
  	
	if(str.length == 0) {
		return false; 		
	}
	return true;
	
}

/**
*	checkEmailAddress
*
*	checks if email address is valid
*/
function checkEmailAddress(email) {
	return /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/.test(email);
}


/**
*	compare
*
*	compares 2 strings
*/
function checkEqual(str1, str2) {
	if(str1 == str2){
		return false
	}
	return true;
}

/**
*	tell a friend form
*/
function checkTellafriend()
{
	clearMessages();
	
	var emailSender = $('#email').val(); 
	var nameSender = $('#naam-verstuurder').val(); 
	var emailReceiver = $('#email-ontvanger').val();
	var message = $('#bericht').val();
	var errors = false;
		
	if(!checkNotEmpty(nameSender)) { 
		setErrorField('Er is geen naam ingevuld', 'div_namesender', 'naam-verstuurder');		
		errors = true;
	}		
		
	if(!checkNotEmpty(emailSender)) { 
		setErrorField('Er is geen email adres ingevuld', 'div_email', 'email');		
		errors = true;
	}
	
	if(checkNotEmpty(emailSender) && !checkEmailAddress(emailSender)) {
		setErrorField('Er is geen geldig email adres ingevuld', 'div_email', 'email');		
		errors = true;
	}
	
	if(!checkNotEmpty(emailReceiver)) { 
		setErrorField('Er is geen email adres ingevuld', 'div_emailreceiver', 'email-ontvanger');		
		errors = true;
	}
	
	if(checkNotEmpty(emailReceiver) && !checkEmailAddress(emailReceiver)) {
		setErrorField('Er is geen geldig email adres ingevuld', 'div_emailreceiver', 'email-ontvanger');		
		errors = true;
	}
	
	if(errors == false && !checkEqual(emailSender, emailReceiver)) {
		setErrorField('Email adressen kunnen niet hetzelfde zijn', 'div_emailreceiver', 'email-ontvanger');		
		errors = true;
	}
				
	//no errors
	if(errors == false) 
	{
		 
		
		 $.ajax({
		 type: "POST",
		 url: "/page/ajax2/tellafriend",
		 data: {nameSender:nameSender, emailSender:emailSender, emailReceiver:emailReceiver, message:message},
		 dataType: "data",	 
			 success: function(data){
			 			 	
				clearFields();
				$('#div_message').after("<p class=\"success\">De link is verstuurd</p>");
			     
			 }		   
		  
		});
		

	}
	
	return false;
}

function setErrorField(message, id, input) 
{
	$('#' + id).after("<p class=\"error\">" + message +"</p>");
	$('#' + input).addClass("error");

	return false;
}


/**
*	clears all messages
*/
function clearMessages() 
{
	
	$(".gegevens :input").removeClass("error");
	$("p.error").remove();
	$("p.success").remove();
}

/**
*	clears all input fields
*/
function clearFields() 
{
	$(".gegevens #naam-verstuurder").val('');
	$(".gegevens #email").val('');
	$(".gegevens #email-ontvanger").val('');
	$(".gegevens #bericht").val('');

}


function initActionForm()
{
	if ( !document.getElementById("actions-form") ) return;
	
	var rate_text = new Array();
	rate_text['1star'] = "slecht...";
	rate_text['2star'] = "matig";
	rate_text['3star'] = "oke";
	rate_text['4star'] = "goed";
	rate_text['5star'] = "super!";
	
	var expr = "#actions-form .gegevens";
	var form = $(expr);
	
	form.hide();
	
	//send to friend	
	$("#actions-form .send a").click(
	
		function()
		{
			if ( $(expr + ":hidden") )
			{
				form.slideDown();
			}
		}
		
	);
	
	$("#actions-form .data a").click(
		
		function()
		{
			form.slideUp();			
		}
	);	
	
	//rating
	
		$("#actions-form .rating .star").each(
			
			function(i)
			{
				var m = i + 1;
				
				$(this).mouseover( 
					function() 
					{ 
						$("#actions-form .rating .star:lt(" + m + ")").addClass("over");
						//set vote text
						if($('#voted').val() != 1) {
							$("#actions-form .rating #votes").html(rate_text[$(this).attr('id')]);
						}
						else {
							$("#actions-form .rating #votes").html('U hebt al gestemd!');
						}
					}
				);
				
				$(this).mouseout(
					function() 
					{ 
					
						if($('#vote_status').val() != 1) {
														
							if($('#votesval').val() == 1) {
								$("#actions-form .rating #votes").html('(' + $('#votesval').val() + " stem)");
							}
							else {
								$("#actions-form .rating #votes").html('(' + $('#votesval').val() + " stemmen)");
							}
						
							$("#actions-form .rating .star:lt(" + m + ")").removeClass("over");
						}
					} 
				);
				
				$(this).click(

						function()
						{	
						
							if($('#voted').val() != 1) 
							{ 
								//ajax post
								var clicked_star = $(this).attr('id');	
								var cat = $('#cat').val();	
								var item_id = $('#item_id').val();								
								//ajax post 
								$.ajax({
								type: "POST",
								url: "/page/ajax2/waardering",
								data: {clicked_star:clicked_star, cat:cat, item_id:item_id },
								dataType: "json",
									success: function(json){ 
										
										//set values
										$('#voted').val('1');
										$("#actions-form .rating #votes").html("Bedankt");
										$("#vote_status").val('1');
										
										//set cookie
										createCookie('rating_' + cat + '_' + item_id, 1 ,90);
										
										//sleep
										setTimeout(function() {
										
											if(json.votes == 1) {
												$("#actions-form .rating #votes").html('(' + json.votes + " stem)");
											}
											else {
												$("#actions-form .rating #votes").html('(' + json.votes + " stemmen)");
											}
																												
											$("#actions-form .rating .star").mouseover(function(){
											
												$("#actions-form .rating #votes").html('u hebt al gestemd!');
											});
											$("#actions-form .rating .star").mouseout(function(){
											
												if(json.votes == 1) {
													$("#actions-form .rating #votes").html('(' + json.votes + " stem)");
												}
												else {
													$("#actions-form .rating #votes").html('(' + json.votes + " stemmen)");
												}
											});
											$("#vote_status").val('0');
																																
											//set actual rating
											$("#actions-form .rating .star").removeClass("selected");
											$("#actions-form .rating .star").removeClass("over");
											
											$("#actions-form .rating .star").each(
			
												function(j)
												{
													var k = j + 1;
																											
													if(json.rating >= k) {
																										
														$("#actions-form .rating .star:lt(" + k + ")").addClass("selected");
													}

												}
											);
											
										
										}, 3000);
										$('#votesval').val(json.votes);
										
									}
						
								});		
							$("#actions-form .rating .star").removeClass("selected");
						
							$("#actions-form .rating .star:lt(" + m + ")").addClass("selected");
						
							$("#numstars").val( m );
							}
						}		
					
								
				);
			}	
		);
	
	
	
	
}
