var ajaxInWork = false;

function checkEmailAddress(email) {
    // the following expression must be all on one line...
    var goodEmail = email.match(/^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/);
    if ( goodEmail ) {
        return true;
    } else {
        return false;
    }
}

function checkLogin(nEmail, nPass) {
    var vEmail = $('#'+nEmail).attr('value');
    var vPassw = $('#'+nPass).attr('value');

    error0 = vEmail == '' ? "- E-mail is required\n" : "";
    error1 = checkEmailAddress(vEmail) != true && error0 == '' ? "- E-mail is invalid" : "";
    error2 = vPassw == '' ? '- Password is required\n' : '';
    if (error0 == '' && error1 == '' && error2 == '') {
        return true;
    } else {
        alert('The following error(s) occurred:            \n\n' + error0 + error1 + error2);
        return false;
    }
}

function checkLogin2(nLogin, nPass) {
    var vEmail = $('#'+nLogin).attr('value');
    var vPassw = $('#'+nPass).attr('value');

    error0 = vEmail == '' ? "- Username is required\n" : "";
    error1 = vPassw == '' ? '- Password is required\n' : '';
    if (error0 == '' && error1 == '') {
        return true;
    } else {
        alert('The following error(s) occurred:            \n\n' + error0 + error1);
        return false;
    }
}
$(function(){
    jQuery.preloadImages = function() {
        for (var i = 0; i<arguments.length; i++) {
            jQuery("<img>").attr("src", arguments[i]);
        }
    }
});

function textCounter(field_id, counter_id, limit) {
    if ($('#' + field_id).val().length > limit) {
        $('#' + field_id).val($('#' + field_id).val().substring(0, limit));
    } else {
        if (counter_id != '') $('#' + counter_id).val(limit - $('#' + field_id).val().length);
    }
}

function newsletterSubscribe() {
	var emailObj = $('#s_email');
	if (emailObj.val() == 'Enter your E-mail') {
		emailObj.focus();
		return false;
	}
	if (!checkEmailAddress(emailObj.val())) {
		alert('E-mail is invalid.');
		return false;
	}

	$('#newsletter-signup').remove();
	$(document.body).append('<div id="newsletter-signup">' +
		'<div id="newsletter-captcha-widget">' +
			'Enter <strong>both words</strong> below, <strong>separated by a space</strong>.<br />' +
			'Can\'t read the words below? <a href="#" onclick="Recaptcha.reload(); return false;" style="color: #33aaff;">Try different words</a>.' +
			'<div id="recaptcha_image" style="margin: 6px 0 6px 0; height: 57px;"></div>' +
			'<table width="100%" cellpadding="0" cellspacing="0" border="0">' +
				'<tr>' +
					'<td><span class="recaptcha_only_if_image">Enter the words above:&nbsp;</span></td>' +
					'<td align="right" style="padding-right: 5px;"><input id="recaptcha_response_field" name="recaptcha_response_field" type="text" class="" /></td>' +
				'</tr>' +
			'</table>' +
			'<div id="newsletter-msg"></div>' +
		'</div>' +
	'</div>');

	Recaptcha.create(reCaptchaPublicKey, 'newsletter-captcha', {theme: 'custom', custom_theme_widget: 'newsletter-captcha-widget', callback: Recaptcha.focus_response_field});
	var newsletterDialog = $('#newsletter-signup').dialog({
		title: 'Newsletter Signup',
		modal: true,
		width: 340,
		buttons: {
			'Cancel': function() {
				$(this).dialog('close');
			},
			'Submit': function() {
				$('#newsletter-msg').text('');
				if ($('#recaptcha_response_field').val() == '') {
					$('#recaptcha_response_field').focus();
					return;
				}
				if (ajaxInWork) {
					return;
				}
				ajaxInWork = true;
				$('#recaptcha_response_field').attr('disabled', 'disabled');
				$.post('/newsletter.html', {
						email: emailObj.val(),
						challenge: Recaptcha.get_challenge(),
						response: Recaptcha.get_response(),
						type: 'ajax'
					},
					function(response){
						if (response.success) {
							newsletterDialog.dialog('close');
							emailObj.val('Enter your E-mail');
							$('#newsletter-signup').remove();
							$(document.body).append('<div id="newsletter-signup" style="text-align: center; padding-top: 30px;">Thank you! Your email address has been added to the Newsletter Subscription list.</div>');
							$('#newsletter-signup').dialog({
								title: 'Thank You',
								modal: true,
								width: 340,
								buttons: {
									'Ok': function() {
										$(this).dialog('close');
									}
								},
								close: function() {
									$('#newsletter-signup').remove();
								}
							});
						}
						else {
							$('#newsletter-msg').text(response.msg);
							Recaptcha.reload();
						}
						$('#recaptcha_response_field').attr('disabled', '');
						ajaxInWork = false;
					},
					'json'
				);
			}
		},
		close: function() {
			$('#newsletter-signup').remove();
		}
	});

	return false;
}
