var jsReady = false;
var isActive = false;
var lastTarget;
var targetDiv;
var targetTekst;
var j = 0;

function isReady() {
	return jsReady;
}

$(function() {
	
	jsReady = true;
		   
	$(".validateField").each(function(i) {

		$(this).keyup(function(){
			if ($(this).attr("name") == "email" && $(this).css("display") != "none") {
				
				if(isValidEmailAddress($.trim($(this).val())))
				{
					$(this).css({borderColor: "#47b200"});
					
				}
				
				else
				{
					status = false;
					$(this).css({borderColor: "#AF0000"});
				}
				
			}
			
			if ($(this).attr("name") != "email") {
				if ($.trim($(this).val()) == "" && $(this).css("display") != "none") {
					status = false;
					$(this).css({borderColor: "#AF0000"});
				}
				
				else
				{
					$(this).css({borderColor: "#47b200"});
				}
			}
		});
		
		$(this).blur(function(){
			if ($(this).attr("name") == "email" && $(this).css("display") != "none") {
				
				if(isValidEmailAddress($.trim($(this).val())))
				{
					$(this).css({borderColor: "#47b200"});	
				}
				
				else
				{
					status = false;
					$(this).css({borderColor: "#AF0000"});
				}
				
			}	
			
			if ($(this).attr("name") != "email") {
					
					if ($.trim($(this).val()) == "" && $(this).css("display") != "none") {
						
						status = false;
						$(this).css({borderColor: "#AF0000"});
						
					}
					
					else
					{
						$(this).css({borderColor: "#47b200"});
					}
				}
				
		});
		
	});
		   
	$("#offerteForm .submitBtn").click(function() {
		
		$("#offerteForm #saveStatus p").remove();
		
		j = 0;
						
		$(".validateField").each(function(i) {								  
			if ($.trim($(this).val()) != "") {
				validateForm(true, "#offerteForm");
			} else {
				validateForm(false, "#offerteForm");
			}
		});
		
		return false;
		
	});


});

function validateForm(status, target) {
	
	$(""+target+" .validateField").each(function(i) {
		if(target == "#offerteForm")
		{
			if ($(this).attr("name") == "email" && $(this).css("display") != "none") {
			
				if(isValidEmailAddress($.trim($(this).val())))
				{
					$(this).css({borderColor: "#47b200"});
					
				}
				
				else
				{
					status = false;
					$(this).css({borderColor: "#AF0000"});
				}
				
			}
			
			if ($(this).attr("name") != "email") {
				if ($.trim($(this).val()) == "" && $(this).css("display") != "none") {
					status = false;
					$(this).css({borderColor: "#AF0000"});
				}
				
				else
				{
					$(this).css({borderColor: "#47b200"});
				}
			}
		}
		
		if(target == "#mailafriendForm")
		{
			if ($(this).attr("name") == "emailVerstuurder" && $(this).css("display") != "none") {
							
				if(isValidEmailAddress($.trim($(this).val())))
				{
					$(this).css({borderColor: "#47b200"});
					
				}
				
				else
				{
					status = false;
					$(this).css({borderColor: "#AF0000"});
				}
				
			}
			
			if ($(this).attr("name") == "emailVriend" && $(this).css("display") != "none") {
				
				if(isValidEmailAddress($.trim($(this).val())))
				{
					$(this).css({borderColor: "#47b200"});
					
				}
				
				else
				{
					status = false;
					$(this).css({borderColor: "#AF0000"});
				}
				
			}
			
			if ($(this).attr("name") != "emailVerstuurder" && $(this).attr("name") != "emailVriend") {
				if ($.trim($(this).val()) == "" && $(this).css("display") != "none") {
					status = false;
					$(this).css({borderColor: "#AF0000"});
				}
				
				else
				{
					$(this).css({borderColor: "#47b200"});
				}
			}
		}
		
	});
	
	if(!status)
	{
		j++;
		
		if(j == 1)
		{
			$(""+target+" #saveStatus").css({display: "block"});
				$(""+target+" #saveStatus").addClass("errorMessage");
				$(""+target+" #saveStatus").append("<p>Please fill out the correct fields <a href=\"#\" class=\"closeLink\">Close</a></p>");
				$(""+target+" #saveStatus").fadeTo(400,1, function(){
					$(this).slideDown(400);
				})
				
				$(""+target+" .close, .closeLink").bind('click', function() {
					$(""+target+" #saveStatus").fadeTo(400,0, function(){
						$(""+target+" #saveStatus").css({display: "none"});
						$(this).slideUp(400);
						$(""+target+" #saveStatus p").remove();
						$(""+target+" #saveStatus").removeClass("errorMessage");
					});
					return false;
				});	
		}
	}

	if (status) {
		//$("form").submit();
		j++;
		
		if(j == 1)
		{
			
			var data = makeForm(""+target+"");
			data['saveType'] = $(""+target+" .submitBtn").attr("name");
			
			if(data['saveType'] == 2)
			{
				path = $("#mailafriendForm").attr("action");
			}
			else
			{
				path = $("#offerteForm").attr("action");
			}
			
			sendData(path,data);
		}
		
	}

}

function showMailfriend(target)
{
	
	targetDiv = target;
	
	switch(target)
	{
		case "Algemene-demo":
			targetDiv = "sendAFriendAlgemeen";
			targetTekst = "";
		break;
		
		case "CorporateVoice-demo":
			targetDiv = "sendAFriendCorporate";
			targetTekst = ", klik dan op CorporateVoice";
			
		break;
		
		case "CommercialVoice-demo":
			targetDiv = "sendAFriendCommercial";
			targetTekst = ", klik dan op CommercialVoice";
		break;
		
		case "ImageVoice-demo":
			targetDiv = "sendAFriendImage";
			targetTekst = ", klik dan op ImagingVoice";
		break;
	}
	
	if(lastTarget != targetDiv && lastTarget != "" && $('#'+lastTarget+'').height() == 350)
	{
		
		$('#'+lastTarget+'').animate({
			height: 0
		}, 500, function() {
			// Animation complete.
			$('#'+lastTarget+'').empty();	
			clearForm('#'+lastTarget+'');
		  });
		
		isActive = false;
	}
	
	if($('#'+targetDiv+'').height() == 350){
		
		$('#'+targetDiv+'').animate({
			height: 0
		}, 500, function() {
			// Animation complete.
			$('#'+targetDiv+'').empty();	
			clearForm('#'+targetDiv+'');
			
			lastTarget = targetDiv;
			
		  });
		
		isActive = false;
	}
	
	
	if($('#'+targetDiv+'').height() == 0){
		
		var html = ' <h4>Send this demo to one of your friends</h4>';
			
			html += '<a class="sendAFriendClose" href="#" title=""><img src="images/close-button.gif" alt="" /></a>';
			
			html += '<form action="formverzenden.php" method="post" id="mailafriendForm">';
			
				html += '<div class="formInputBox">';
					html += '<label for="naamVriend">Friend\'s name</label>';
					html += '<input class="validateField" name="naamVriend" id="naamVriend" size="40" /><br clear="all" />';
					
					html += '<label for="emailVriend">Friend\s e-mail address</label>';
					html += '<input class="validateField" name="emailVriend" id="emailVriend" size="40" /><br clear="all" />';
				html += '</div>';
				
				html += '<div class="formInputBox noMargin">';
					html += '<label for="naamVerstuurder">Your name</label>';
					html += '<input class="validateField" name="naamVerstuurder" id="naamVerstuurder" size="40" /><br clear="all" />';
					
					html += '<label for="emailVerstuurder">Your e-mail address</label>';
					html += '<input class="validateField" name="emailVerstuurder" id="emailVerstuurder" size="40" /><br clear="all" />';
				html += '</div>';
				
				html += '<br clear="all" />';
				
				html += '<label for="berichtMailafriend">Message</label>';
				html += '<textarea class="shortTextarea" name="berichtMailafriend" id="berichtMailafriend" cols="40" rows="10">While looking for a Dutch voice-over artist, I came across the website of Arno Lubbinge, a native Dutch voice actor with his own studio. You can find his demos and price list at http://www.dutchvoice.com</textarea>';
				
				html += '<p id="saveStatus" class="notification"></p>';
				
				html += '<a class="submitBtn" href="#" title="Versturen" name="2"><img src="images/backgroundButton.jpg" alt="Versturen" /></a>';
	
			html += '</form>';
			
			$('#'+targetDiv+'').html(''+html+'');
								
		
		$('#'+targetDiv+'').animate({
			height: 350
		}, 500, function() {
			// Animation complete.
			
			lastTarget = targetDiv;
			
			$('#naamVriend').focus();
			
			$(".sendAFriendClose").click(function() {
				
				$('#'+targetDiv+'').animate({
					height: 0
				}, 500, function() {
					// Animation complete.
					$('#'+targetDiv+'').empty();	
					clearForm('#'+targetDiv+'');
					
					lastTarget = targetDiv;
					
				  });
				
				return false;
				
			});
			
			$("#mailafriendForm .validateField").each(function(i) {

					$(this).keyup(function(){
						if ($(this).attr("name") == "emailVerstuurder" && $(this).css("display") != "none") {
							
							
							if(isValidEmailAddress($.trim($(this).val())))
							{
								$(this).css({borderColor: "#47b200"});
								
							}
							
							else
							{
								status = false;
								$(this).css({borderColor: "#AF0000"});
							}
							
						}
						
						if ($(this).attr("name") == "emailVriend" && $(this).css("display") != "none") {
							
							if(isValidEmailAddress($.trim($(this).val())))
							{
								$(this).css({borderColor: "#47b200"});
								
							}
							
							else
							{
								status = false;
								$(this).css({borderColor: "#AF0000"});
							}
							
						}
						
						if ($(this).attr("name") != "emailVerstuurder" && $(this).attr("name") != "emailVriend") {

							
							if ($.trim($(this).val()) == "" && $(this).css("display") != "none") {
								status = false;
								$(this).css({borderColor: "#AF0000"});
							}
							
							else
							{
								$(this).css({borderColor: "#47b200"});
							}
						}
					});
					
					$(this).blur(function(){
						if ($(this).attr("name") == "emailVerstuurder" && $(this).css("display") != "none") {
							
							if(isValidEmailAddress($.trim($(this).val())))
							{
								$(this).css({borderColor: "#47b200"});	
							}
							
							else
							{
								status = false;
								$(this).css({borderColor: "#AF0000"});
							}
							
						}	
						
						if ($(this).attr("name") == "emailVriend" && $(this).css("display") != "none") {
							
							if(isValidEmailAddress($.trim($(this).val())))
							{
								$(this).css({borderColor: "#47b200"});	
							}
							
							else
							{
								status = false;
								$(this).css({borderColor: "#AF0000"});
							}
							
						}	
						
						if ($(this).attr("name") != "emailVerstuurder" && $(this).attr("name") != "emailVriend") {
								
								if ($.trim($(this).val()) == "" && $(this).css("display") != "none") {
									
									status = false;
									$(this).css({borderColor: "#AF0000"});
									
								}
								
								else
								{
									$(this).css({borderColor: "#47b200"});
								}
							}
							
					});
					
				});
			
			$("#mailafriendForm .submitBtn").click(function() {
						
				$("#mailafriendForm #saveStatus p").remove();
				
				j = 0;
						
				$(".validateField").each(function(i) {								  
					if ($.trim($(this).val()) != "") {
						validateForm(true, "#mailafriendForm");
					} else {
						validateForm(false, "#mailafriendForm");
					}
				});
			
			return false;
		
			});
			
		  });
		
	}
}


function isValidEmailAddress(emailAddress) {
	var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
	return pattern.test(emailAddress);
}	

function sendData(path, data) {
	$.post(path, data,
		function(succes) {
			if (succes.succes) {
				
				var targetDivv = succes.target;
				
				$(""+targetDivv+" #saveStatus").css({display: "block"});
				$(""+targetDivv+" #saveStatus").addClass("successMessage");
				$(""+targetDivv+" #saveStatus").append("<p>" + succes.message + " <a href=\"#\" class=\"closeLink\">Close</a></p>");
				$(""+targetDivv+" #saveStatus").fadeTo(400,1, function(){
					$(this).slideDown(400);
				})
				
				$(""+targetDivv+" .close, .closeLink").bind('click', function() {
					
					clearForm(targetDivv);
					
					if(targetDivv == "#mailafriendForm")
					{
						$($(this).parent().parent().parent().parent()).animate({
							height: 0
						}, 500, function() {
							// Animation complete.
							$(this).empty();	
						});
					}
					
					
					$(""+targetDivv+" #saveStatus").fadeTo(400,0, function(){
						$(""+targetDivv+" #saveStatus").css({display: "none"});
						$(this).slideUp(400);
						$(""+targetDivv+" #saveStatus p").remove();
						$(""+targetDivv+" #saveStatus").removeClass("successMessage");
						
					});
					return false;
				});
			} else {
				
				var targetDiv = succes.target;
				
				$(""+targetDiv+" #saveStatus").css({display: "block"});
				$(""+targetDiv+" #saveStatus").addClass("errorMessage");
				$(""+targetDiv+" #saveStatus").append("<p>" + succes.message + " <a href=\"#\" class=\"closeLink\">Close</a></p>");
				$(""+targetDiv+" #saveStatus").fadeTo(400,1, function(){
					$(this).slideDown(400);
				})
				
				$(""+targetDiv+" .close, .closeLink").bind('click', function() {
					$(""+targetDiv+" #saveStatus").fadeTo(400,0, function(){
						$(""+targetDiv+" #saveStatus").css({display: "none"});
						$(this).slideUp(400);
						$(""+targetDiv+" #saveStatus p").remove();
						$(""+targetDivv+" #saveStatus").removeClass("errorMessage");
					});
					return false;
				});
			}
		} ,"json");
}

function makeForm(target) {
	data = new Object;
	$(""+target+" input[type!=button],"+target+" textarea,"+target+" select").each(function() {
		if ($(this).attr("type") == "checkbox" || $(this).attr("type") == "radio") {
			if ($(this).attr("checked")) {
				data[$(this).attr("name")] = $(this).val();
			}
		}
		else if ($(this).attr("name") == "tab_text_tinymce") {
			data[$(this).attr("name")] = tinyMCE.get($(this).attr("name")).getContent();
		} else {
			data[$(this).attr("name")] = $(this).val();
		}
	});
	return data;
}

function clearForm(target) {
	$(""+target+" input[type!=button],"+target+" textarea,"+target+" select").each(function() {
		$(this).val('');
		$(this).css({borderColor: "#C9C9C9"});
	});
}
