/**
 * login
 * Date: 04/11/2011
 * @author KruGlu
 * @version 1.0
 *
 **/

$(document).ready(function() {

	$('#login-form').submit(function(event) {
		// Stop full page load
		event.preventDefault();

		// Check fields
		var acct = $('#acct').val();
		var pass = $('#pass').val();
		var ckfl = $('#ckfl').val();

		if (!acct || acct.length == 0) {
			$('#login-block').removeBlockMessages().blockMessage('Please enter your e-mail address', {type: 'warning'});
		} else if (!pass || pass.length == 0) {
			$('#login-block').removeBlockMessages().blockMessage('Please enter your password', {type: 'warning'});
		} else {
			var submitBt = $(this).find('button[type=submit]');
			submitBt.disableBt();

			// Target url
			var target = $(this).attr('action');
			if(!target || target == '') {
				target = document.location.href.match(/^([^#]+)/)[1];
			}

			// Request
			var data = {
				a: $('#a').val(),
				acct: acct,
				pass: pass,
				ckfl: ckfl
			};
			var redirect = $('#redirect');
			if(redirect.length > 0) {
				data.redirect = redirect.val();
			}

			// Start timer
			var sendTimer = new Date().getTime();

			// Send
			$.ajax({
				url: '/x/user/login',
				dataType: 'json',
				type: 'POST',
				data: data,
				success: function(data, textStatus, XMLHttpRequest) {
					if(data.valid) {
						var receiveTimer = new Date().getTime();
						if (receiveTimer-sendTimer < 500) {
							setTimeout(function() {
								document.location.href = data.redirect;

							}, 500-(receiveTimer-sendTimer));
						} else {
							document.location.href = data.redirect;
						}
					} else {
						// Message
						$('#login-block').removeBlockMessages().blockMessage(data.error || 'An unexpected error occured, please try again', {type: 'error'});
						submitBt.enableBt();
					}
				},
				error: function(XMLHttpRequest, textStatus, errorThrown) {
					// Message
					$('#login-block').removeBlockMessages().blockMessage('Error while contacting server, please try again', {type: 'error'});
					submitBt.enableBt();
				}
			});

			// Message
			$('#login-block').removeBlockMessages().blockMessage('Please wait, checking logon...', {type: 'loading'});
		}
	});

	$('strong#new-user-reg').live('click', function() {
		var data = {
			acct: $('#acct').val()
		};
		newregResult = $.modal({
			title: 'Create a New Account',
			url: '/x/user/regfromlogin',
			minHeight: 400,
			minWidth: 600,
			scrolling: false,
			border: true,
			resizable: false,
			data: data
		});
        });

	jQuery.validator.setDefaults({
		debug: true,
		success: "valid"
	});;

	$('.errFromReg').livequery(function() { 
		$(this).validate({
			rules: {
				ignoreTitle: true,
				regemail: {
					required: true,
					email: true
				},
				regpassword1: {
					required: true,
					minlength: 5,
				},
				regpassword2: {
					required: true,
					equalTo: "#regpassword1"
				}
			},
			messages: {
				regemail: {
					required: "\<span class='error'\>E-Mail address is required...\<\/span\>",
					email: "\<span class='error'\>Like this:&nbsp;&nbsp;name@domain.com\<\/span\>"
				},
				regpassword1: {
					required: "\<span class='error'\>This field is required...<\/span\>",
					minlength: "\<span class='error'\>At least 5 characters...\<\/span\>"
				},
				regpassword2: {
					equalTo: "\<span class='error'\>Passwords don't match...\<\/span\>",
					required: "\<span class='error'\>This field is required...<\/span\>",
					minlength: "\<span class='error'\>At least 5 characters...\<\/span\>"
				}
			}
		});
	});

	$('button#modal-button-errLogonReg').live('click', function() {
		var params = {};
		var srvrResults = {};

		params.func = this.name;
		params.url = $('input#urlAcct').val();
		params.acct = $('input#acct').val();
		params.regpassword1 = $('input#regpassword1').val();
		params.regpassword2 = $('input#regpassword2').val();
		params.privtoscheck = $('input#regtoscheck:checked').val();

		srvrResults = $.ajax({
			url: params.url,
			type: 'POST',
			dataType: 'json',
			data: params,
			success: function(response) {
				if(response.appExecResult == "execComplete") {
					$('div#logon-reg-status').html(response.resultData);
					$('input#regpassword1').delay(1200).val('');
					$('input#regpassword2').delay(4200).val('');
				}
				if(response.resultAction == 1) {
					var qkURL = '/x/user/dashboard';
					window.location.href = qkURL;
					return false;
				}
				if(response.appExecResult == "execError") {
					$('div#logon-reg-status').html(response.errorResult);
				}
				if(response.appExecResult == "rsndComplete") {
					$('div#logon-reg-status').html(response.resultData);
				}
				if(response.appExecResult == "rsndError") {
					$('div#logon-reg-status').html(response.errorResult);
				}
			}
		});
	});


});
