jQuery(document).ready(function(){
/***************************************/
/***************************************/

var email_signup = $("#email-signup"),
username_signup = $("#username-signup"),
password_signup = $("#password-signup"),
allFields_signup = $([]).add(email_signup).add(username_signup).add(password_signup),
email_profile_new = $("#email-profile-new"),
email_profile_confirm = $("#email-profile-confirm"),
username_profile_new = $("#username-profile-new"),
username_profile_confirm = $("#username-profile-confirm"),
realname_profile_new = $("#realname-profile-new"),
realname_profile_confirm = $("#realname-profile-confirm"),
password_profile_now = $("#password-profile-now"),
password_profile_new = $("#password-profile-new"),
password_profile_confirm = $("#password-profile-confirm"),
allFields_profile = $([]).add(email_profile_new).add(email_profile_confirm).add(username_profile_new).add(username_profile_confirm).add(realname_profile_new).add(realname_profile_confirm).add(password_profile_now).add(password_profile_new).add(password_profile_confirm),
email_login = $("#email-login"),
password_login = $("#password-login"),
allFields_login = $([]).add(email_login).add(password_login),
email_forget = $("#email-forget"),
allFields_forget = $([]).add(email_forget),
tips_signup = $("#validateTips-signup").empty(),
tips_login = $("#validateTips-login").empty(),
tips_profile = $("#validateTips-profile").empty();
tips_logout = $("#validateTips-logout").empty(),
tips_forget = $("#validateTips-forget").empty();

/***************************************/

// create custom animation algorithm for jQuery called "bouncy"
$.easing.bouncy = function (x, t, b, c, d) {
	var s = 1.70158;
	if ((t/=d/2) < 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b;
	return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b;
}
// create custom tooltip effect for jQuery Tooltip
$.tools.tooltip.addEffect("bouncy",
	// opening animation
	function(done) {
		this.getTip().animate({top: '+=15'}, 500, 'bouncy', done).show();
	},
	// closing animation
	function(done) {
		this.getTip().animate({top: '-=15'}, 500, 'bouncy', function()  {
			$(this).hide();
			done.call();
		});
	}
);

/***************************************/

// create overlay functionality
$(function() {
	// overal each "img" element with "rel" attributes
	overlayAPI = $("a[rel]").overlay({
             api: true,
             oneInstance: false,
             expose: {
                color: '#003366',
                loadSpeed: 3000,
                opacity: 0.6
             },
             effect: 'apple',
             closeOnClick: false,
             onClose: function() {
                allFields_signup.val('').removeClass('error');
                allFields_login.val('').removeClass('error');
                allFields_profile.val('').removeClass('error');
                allFields_forget.val('').removeClass('error');
                $('#validateTips-signup').empty();
                $('#validateTips-login').empty();
                $('#validateTips-profile').empty();
                $('#validateTips-forget').empty();
            }
       });


});

function closeAll() { 
    $("a[rel]").each(function() { 
        $(this).overlay().close(); 
    }); 
}

function timedRefresh(timeoutPeriod) {
	setTimeout("location.reload(true);",timeoutPeriod);
}

$("#signupform input").tooltip({
	// use single tooltip element for all tips
	tip: '#tooltip',
	position: "top center",
	offset: [0, 0],
	relative: true,
	// use "slide" effect
	effect: 'bouncy'
}).dynamic({
	// customized configuration on bottom edge
	bottom: {
		// slide downwards
		direction: 'down',
		offset: [25, 0],
		// bounce back when closed
		bounce: true
	}
});

$("#forgetform input").tooltip({
	// use single tooltip element for all tips
	tip: '#tooltipforget',
	position: "top center",
	offset: [0, 0],
	relative: true,
	// use "slide" effect
	effect: 'bouncy'
}).dynamic({
	// customized configuration on bottom edge
	bottom: {
		// slide downwards
		direction: 'down',
		offset: [25, 0],
		// bounce back when closed
		bounce: true
	}
});

$("#profileform input").tooltip({
	// use single tooltip element for all tips
	tip: '#tooltipprofile',
	position: "top center",
	offset: [0, 0],
	relative: true,
	// use "slide" effect
	effect: 'bouncy'
}).dynamic({
	// customized configuration on bottom edge
	bottom: {
		// slide downwards
		direction: 'down',
		offset: [25, 0],
		// bounce back when closed
		bounce: true
	}
});

$("#validateform-signup").mousedown(function() {
	var str_signup = $("#signupform").serialize();
	var response = "";
	$.ajax({
		type: "POST",
		url: "/repository/jquery-backend-main/jquery-backend-signup.html",  // send the signup info to this page
		data: str_signup,
		cache: false,
		success: function(response){
			$("#validateTips-signup").ajaxComplete(function(event, request, settings){
				$("#validateTips-signup").empty().append(response);
				if (response == 'OK'){
					$(function() {
						response = '';
						closeAll();
						overlayResponseAPI = $("#signupok").overlay({
							oneInstance: false,
							api: true,
							expose: {
								color: '#003366',
								loadSpeed: 3000,
								opacity: 0.6
							},
							effect: 'apple',
							closeOnClick: false,
						}).load();
					});
				}
			});
		}
	});
});

$("#validateform-login").mousedown(function() {
	var str_login = $("#loginform").serialize();
	var response = "";
	$.ajax({
		type: "POST",
		url: "/repository/jquery-backend-main/jquery-backend-login.html",  // send the login info to this page
		data: str_login,
		cache: false,
		success: function(response){
			$("#validateTips-login").ajaxComplete(function(event, request, settings){
				$("#validateTips-login").empty().append(response);
				if (response == 'OK'){
					$(function() {
						response = '';
						closeAll();
						timedRefresh(1000);

					});
				}
			});
		}
	});
});

$("#validateform-profile").mousedown(function() {
	var str_profile = $("#profileform").serialize();
	var response = "";
	$.ajax({
		type: "POST",
		url: "/repository/jquery-backend-main/jquery-backend-profile.html",  // send the profile info to this page
		data: str_profile,
		cache: false,
		success: function(response){
			$("#validateTips-profile").ajaxComplete(function(event, request, settings){
				$("#validateTips-profile").empty().append(response);
				if (response == 'OK'){
					$(function() {
						response = '';
						closeAll();
						timedRefresh(1000);

					});
				}
			});
		}
	});
});


$("#validateform-forget").mousedown(function() {
	var str_forget = $("#forgetform").serialize();
	var response = "";
	$.ajax({
		type: "POST",
		url: "/repository/jquery-backend-main/jquery-backend-forget.html",  // send the forget info to this page
		data: str_forget,
		cache: false,
		success: function(response){
			$("#validateTips-forget").ajaxComplete(function(event, request, settings){
				$("#validateTips-forget").empty().append(response);
				if (response == 'OK'){
					$(function() {
						response = '';
						closeAll();
						overlayResponseAPI = $("#forgetok").overlay({
							oneInstance: false,
							api: true,
							expose: {
								color: '#003366',
								loadSpeed: 3000,
								opacity: 0.6
							},
							effect: 'apple',
							closeOnClick: false,
						}).load();

					});
				}
			});
		}
	});
});

$("#logout-user").mousedown(function() {
	var response = "";
	$.ajax({
		type: "POST",
		url: "/repository/jquery-backend-main/jquery-backend-logout.html",  // send the logout info to this page
		cache: false,
		success: function(response){
			$("#logout-user").ajaxComplete(function(event, request, settings){
				if (response == 'OK'){
					$(function() {
						response = '';
						closeAll();
						timedRefresh(1000);

					});
				}
			});
		}
	});
});

/***************************************/
/***************************************/
});