$(function() {

	jQuery.fn.blink =
		function() {
			this.each(function() {
				$(this).fadeOut(100).fadeIn(100).fadeOut(100).fadeIn(100).fadeOut(100).fadeIn(100).fadeOut(100).fadeIn(100);
			});
		}

	jQuery.fn.regFocusText =
		function() {
			this.each(function() {
				$(this).
					focus(function() {
						if ($(this).attr('value') == $(this).attr('title')) {
							$(this).attr('value', '');
						}
					}).
					blur(function() {
						if ($(this).attr('value') == '') {
							$(this).attr('value', $(this).attr('title'));
						}
					});
			});
		}

    jQuery.fn.startLoading =
        function() {
            this.each(function() {
                var me = $(this);
                var matched = me.find('.loading-bibb');

                if (matched.size() == 0) {
                    me.prepend('<div class="loading-bibb" style="height:' + me.height() + 'px; display: block;"><table><tr><td><p style="color: white;">Loading, one moment...</p><img src="/theme/files/default/images/ajax-loader-grey.gif" width="16" height="16" border="0" alt="" /></td></tr></table></div>');
                    me.find('.loading-bibb').fadeTo(0, 0.9);
                } else {
                    matched.css({display: 'block', height: me.height()});
                }
            });
        }

    jQuery.fn.stopLoading =
        function() {
            this.each(function() {
                $(this).find('.loading-bibb').fadeOut(500);
            });
        }

	var downloadFunc = function(e) {
		e.preventDefault();
		e.stopPropagation();

		$('#download-ok').css('display', 'none');
		$('#download-error').css('display', 'none');

		if ($('#download').attr('premium') && !$('#download').attr('user')) {
			if ($('#signup2').css('display') == 'block') {
				$('#signup2-do').blink();
			} else {
				$('#signup2').slideToggle(300);
			}

			return;
		}

		$('#download-wrapper').startLoading();

		$.post(
			'/auth.html',
			{
				act: 'download',
				layout_id: $('#download').attr('layout_id')
			},
			function(data, textstatus) {
				$('#download-wrapper').stopLoading();

				if (data.error) {
					$('#download-ok').slideUp(300);
					$('#signup2').slideUp(300);

					$('#download-error-text').text(data.error);

					$('#download-error').slideDown(300, function() {
						$('#download-error-text').blink()
					});
					
				} else if (data.message) {
					$('#download-wrapper').stopLoading();

					$('#download-error').slideUp(300);
					$('#signup2').slideUp(300);

					$('#download-ok-text').text(data.message);

					$('#download-ok').slideDown(300, function() {
						$('#download-ok-text').blink()
					});
				} else if (data.link) {
					top.location = data.link;
				}
			},
			'json'
		);
	}

	$('#download').click(downloadFunc);
	$('#download2').click(downloadFunc);

	$('#signup3-do').click(function(e) {
		e.preventDefault();
		e.stopPropagation();

		$('#login3-block').startLoading();

		$('#signup3-error').css('display', 'none');

		$.post(
			'/auth.html',
			{
				act: 'signup',
				user_login: $('#signup3-twitterid').attr('value'),
				user_email: $('#signup3-email').attr('value')
			},
			function(data, textstatus) {
				$('#login3-block').stopLoading();

				if (data.error) {
					$('#signup3-error').text(data.error).slideDown(300).blink();
				} else if (data.user) {
					top.location.href = window.location.href;
				}
			},
			'json'
		);
	});

	$('#signup2-do').click(function(e) {
		e.preventDefault();
		e.stopPropagation();

		$('#signup2-error').css('display', 'none');

		$('#signup2').startLoading();

		$.post(
			'/auth.html',
			{
				act: 'signup',
				user_login: $('#signup2-twitterid').attr('value'),
				user_email: $('#signup2-email').attr('value'),
				layout_id: $('#download').attr('layout_id')
			},
			function(data, textstatus) {
				$('#signup2').stopLoading();

				if (data.error) {
					$('#signup2-error').text(data.error).slideDown(300).blink();
				} else if (data.message) {

					$('#signup2').slideUp(100);
					
					$('#download-ok-text').text(data.message);
					
					$('#download-ok').slideDown(300, function() {
						$('#download-ok-text').blink();
					});
				} else if (data.user) {
					top.location.href = window.location.href;
				}
			},
			'json'
		);
	});

	$('#signup-do').click(function(e) {
		e.preventDefault();
		e.stopPropagation();

		$('#signup').startLoading();

		$('#signup-error').css('display', 'none');

		$.post(
			'/auth.html',
			{
				act: 'signup',
				user_email: $('#signup-email').attr('value'),
				user_login: $('#signup-twitterid').attr('value')
			},
			function(data, textstatus) {
				$('#signup').stopLoading();

				if (data.error) {
					$('#signup-error').text(data.error).slideDown(300).blink();
				} else if (data.user) {
					top.location.href = window.location.href;
				}
			},
			'json'
		);
	});

	$('#login-button').click(function(e) {
		e.preventDefault();
		e.stopPropagation();

		$('#login-error').slideUp(100);

		var toggled = false;

		$('.header .login-box').each(function (index, el) {

			var box = $(el);

			if (box.attr('id') == 'login') {
				return;
			}

			if (box.css('display') == 'block') {
				toggled = true;
				
				box.slideToggle(300, function() {
					$('#login').slideToggle(300);
				});
			}
		});

		if (!toggled) {
			$('#login').slideToggle(300);
		}
	});

	$('.header .remind-button').click(function(e) {
		e.preventDefault();
		e.stopPropagation();

		$('#remind-error').slideUp(100);

		var toggled = false;

		$('.header .login-box').each(function (index, el) {
			var box = $(el);

			if (box.attr('id') == 'remind') {
				return;
			}

			if (box.css('display') == 'block') {
				toggled = true;

				box.slideToggle(300, function() {
					$('#remind').slideToggle(300);
				});
			}
		});

		if (!toggled) {
			$('#remind').slideToggle(300);
		}
	});

	$('#signup-button').click(function(e) {
		e.preventDefault();
		e.stopPropagation();

		$('#signup-error').slideUp(100);

		var toggled = false;

		$('.header .login-box').each(function (index, el) {
			var box = $(el);

			if (box.attr('id') == 'signup') {
				return;
			}

			if (box.css('display') == 'block') {
				toggled = true;
				
				box.slideToggle(300, function() {
					$('#signup').slideToggle(300);
				});
			}
		});

		if (!toggled) {
			$('#signup').slideToggle(300);
		}
	});

	$('#user-login').regFocusText();
	$('#user3-login').regFocusText();
	$('#signup-email').regFocusText();
	$('#signup-twitterid').regFocusText();
	$('#signup2-email').regFocusText();
	$('#signup2-twitterid').regFocusText();
	$('#signup3-email').regFocusText();
	$('#signup3-twitterid').regFocusText();

	$('#remind-email').regFocusText();


	$('#login-do').click(function(e) {
		e.preventDefault();
		e.stopPropagation();

		$('#login').startLoading();

		$('#login-error').slideUp(100);

		$.post(
			'/auth.html',
			{
				act: 'login',
				user_login: $('#user-login').attr('value'),
				user_password: $('#user-password').attr('value')
			},
			function(data, textstatus) {
				$('#login').stopLoading();

				if (data.error) {
					$('#login-error').text(data.error).slideDown(300).blink();
				} else if (data.user) {
					window.top.location.href = window.location.href;
				}
			},
			'json'
		);
	});

	$('#remind-do').click(function(e) {
		e.preventDefault();
		e.stopPropagation();

		$('#remind').startLoading();

		$('#remind-error').slideUp(100);

		$.post(
			'/auth.html',
			{
				act: 'remind',
				user_email: $('#remind-email').val()
			},
			function(data, textstatus) {
				$('#remind').stopLoading();

				if (data.error) {
					$('#remind-error').text(data.error).slideDown(300).blink();
				}
			},
			'json'
		);
	});

	$('#login3-do').click(function(e) {
		e.preventDefault();
		e.stopPropagation();

		$('#login3-error').slideUp(100);

		$('#login3-block').startLoading();

		$.post(
			'/auth.html',
			{
				act: 'login',
				user_login: $('#user3-login').attr('value'),
				user_password: $('#user3-password').attr('value')
			},
			function(data, textstatus) {
				$('#login3-block').stopLoading();

				if (data.error) {
					$('#login3-error').text(data.error).slideDown(300).blink();
				} else if (data.user) {
					window.top.location.href = window.location.href;
				}
			},
			'json'
		);
	});

	$('#logout-button').click(function(e) {
		e.preventDefault();
		e.stopPropagation();

		$.post(
			'/auth.html',
			{
				act: 'logout'
			},
			function(data, textstatus) {
				window.top.location = window.location;
			},
			'json'
		);
	});

	$('.tab').each(function() {
		var mytab = $(this);

		$(this).find('.tab-switch').click(function(e) {
			e.preventDefault();
			e.stopPropagation();

			var current = mytab.find('.tab-box-act');
			var me = $(this);

			if (!current) {
				return;
			}

			if (current.attr('id') == me.attr('id')) {
				return;
			}

			current.removeClass('tab-box-act').addClass('tab-box');

			me.removeClass('tab-box').addClass('tab-box-act');

			$('#' + current.attr('id') + '-block').slideUp(300, function() {
				$('#' + me.attr('id') + '-block').slideDown(300);
			});
		});
	});

	$('#install').click(function(e) {
		e.preventDefault();
		e.stopPropagation();

		$('#tabs-block').startLoading();

		$('#install-message').slideUp()

		$.post(
			'/install.html',
			{
				twitterid: $('#install-twitterid').attr('value'),
				twitterpw: $('#install-twitterpw').attr('value'),
				tweet_background: $('#install-tweet-background').attr('checked') ? 1 : 0,
				followus: $('#install-follow').attr('checked') ? 1 : 0,
				layout_id: $(this).attr('layout_id')
			},
			function(data, textstatus) {
				$('#tabs-block').stopLoading();
				$('#install-message').text(data.message).slideDown().blink();
			},
			'json'
		);
	});
});