function isValidEmail(email) {
	// thx for stackoverflow.com
	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(email);
};

$(document).ready(function() {
	/* Tooltips */
	$(document).mousemove(function(e) {
		$("#tooltip").css({"margin-left":e.pageX+5+"px","margin-top":e.pageY-75+"px"});
	});
	$("a").hover(
		function() {
			if($(this).attr("ltitle") != null || $(this).attr("ltitle") != "") {
				$("#tooltip").show();
				$("#tooltip").html($(this).attr("ltitle"));
			}
		},
		function() {
			$("#tooltip").hide();
		}
	);
	$(":input").hover(
		function() {
			if($(this).attr("name") != null || $(this).attr("name") != "") {
				$("#tooltip").show();
				$("#tooltip").html($(this).attr("name"));
			}
		},
		function() {
			$("#tooltip").hide();
		}
	);
	/* /Tooltip */

	/* Change part of site */
	$(function() {
		var pages = $("#content > div");
		pages.splice(0, 1); /* remove #menu from array */
		if(this.hash == "#" || this.hash == null) {
			pages.hide();
			pages.filter("#index").show();
		} else {
			pages.hide();
			pages.filter(this.hash).show();
		}
		$("#menu a").click(function() {
			pages.fadeOut().delay(400);
			if(this.hash == "#" || this.hash == "") {
				pages.filter("#index").fadeIn();
			} else {
				pages.filter(this.hash).fadeIn();
			}
			return false;
		});
	});
	/* /Change part of site */

	/* Contact form */
	$(function() {
		var name = $("input[name=\"name\"]");
		var email = $("input[name=\"email\"]");
		var message = $("textarea");
		name.click(function() {
			if(name.val() == "Your name") {
				name.val(null);
				name.css({"color":"#000000"});
			}
		});
		name.focusin(function() {
			if(name.val() == "Your message") {
				name.val(null);
				name.css({"color":"#000000"});
			}
		});
		name.focusout(function() {
			if(name.val() == null || name.val() == "") {
				name.val("Your name");
				name.css({"color":"#c0c0c0"});
			}
		});
		email.click(function() {
			if(email.val() == "Your email") {
				email.val(null);
				email.css({"color":"#000000"});
			} else {
				if(!isValidEmail(email.val())) {
					email.css({"color":"#ff0000"});
				} else {
					email.css({"color":"#000000"});
				}
			}
		});
		email.focusout(function() {
			if(email.val() == null || email.val() == "") {
				email.val("Your email");
				email.css({"color":"#c0c0c0"});
			}
			if(!isValidEmail(email.val()) && email.val() != "Your email") {
				email.css({"color":"#ff0000"});
			} else {
				if(email.val() == "Your email") {
					email.css({"color":"#c0c0c0"});
				} else {
					email.css({"color":"#000000"});
				}
			}
		});
		email.focusin(function() {
			if(email.val() == "Your message") {
				email.val(null);
				email.css({"color":"#000000"});
			}
		});
		email.keyup(function() {
			if(!isValidEmail(email.val())) {
				email.css({"color":"#ff0000"});
			} else {
				email.css({"color":"#000000"});
			}
		});
		message.click(function() {
			if(message.val() == "Your message") {
				message.val(null);
				message.css({"color":"#000000"});
			}
		});
		message.focusout(function() {
			if(message.val() == null || message.val() == "") {
				message.val("Your message");
				message.css({"color":"#c0c0c0"});
			}
		});
		message.focusin(function() {
			if(message.val() == "Your message") {
				message.val(null);
				message.css({"color":"#000000"});
			}
		});
		message.keyup(function(e) {
			if(e.ctrlKey && e.keyCode == 13) {
				if(isValidEmail(email.val())) {
					$.post('api.php', {name: name.val(), email: email.val(), message: message.val()}, function(data) {
						if(data == "Message sent") {
							alert("Message sent.");
						} else {
							alert("Message not sent.");
						}
					});
					name.val("Your name");
					name.css({"color":"#c0c0c0"});
					email.val("Your email");
					email.css({"color":"#c0c0c0"});
					message.val("Your message");
					message.css({"color":"#c0c0c0"});
				} else {
					alert("Your message not sent.\nPlease, verify your email address");
				}
			}
		});
	});
	/* /Contact form */
});
