$(function() {

    var speed = 300;

    /*------------------------------------------------------------------------------------------------------ FORMS */

    // validation
    var langStrings = new Array(
            $('#err_required_field').val(),     //0
            $('#err_invalid_username').val(),      //1
            $('#err_invalid_password').val()   //2
        );
    var clearErrorsTimer = null;

    function show_errors(field, error) {
        var field = $(field);
        if (!field.hasClass('errors')) {
            field.addClass('errors');
            var new_el = $('<ul class="'+ field.attr('id') +'"><li>' + error + '</li></ul>');
            $('div.errors').append(new_el);
            new_el.show(speed);

        }
    }

    // insert label inside all text fields; validate
    $('form#loginForm')
            .find('input[type="text"], input[type="password"]')
			.each(function() {
				this.defaultVal = $(this).prev('label').html();
            })
			.focus(
					function() {
					clearTimeout(clearErrorsTimer);
					var elem = $(this);
	
					if (elem.hasClass('errors') || elem.val() == this.defaultVal) {
	
						elem.removeClass('light-gray');
	
						elem.removeClass('errors');
	
						if (elem.val() == this.defaultVal) {
							elem.val('');
						}

				   }

			});

    $('input#login').click(function(evt){

		evt.preventDefault();
		
        ///prevent massclicking of confirmation button
        var button = $('input#checkout');
        button.attr('disabled', true);
        var errors = false;
        
       //refresh the state of the form /////////
       $('div.errors').empty();
	   $('div.status').empty();
       $('#loginForm input.errors').removeClass('errors');
       /////////////////////////////////////

       $('#loginForm input').each(function(){
            var elem = $(this);
            var val = elem.val();
	    

            if (val == '' || val == this.defaultVal || val.match(/^\s+$/) || elem.hasClass('light-gray')) {
                if (elem.hasClass('required')) {
					show_errors(elem, this.defaultVal + ' ' + langStrings[0]);
					errors = true;
                }
                elem.addClass('light-gray');
            } else if (elem.hasClass('username')
                    && !validUsername(val)) {
                show_errors(this, langStrings[1]);
                errors = true;
            } else if ((elem.hasClass('password') || elem.hasClass('cpassword'))
                    && !validPassword(val)) {
                show_errors(this, langStrings[2]);
                errors = true;
            }
        });
  
                
		if (!errors) {
			if (window.parent) {
				$("body").trigger("ajaxSend");
			} else {
				$("body").trigger("ajaxSend");
			}
			$('form#loginForm').submit();
		} else{
			button.removeAttr('disabled');
		}

        return false;
    });

	
	/*$('form#loginForm').submit(function(evt){
		evt.preventDefault();
		var loginData = $(this).find(":input").serializeArray();
        
        $.ajax({url: $('#loginForm').attr('action'),
            data: loginData,
            type: 'POST',
            success: function(data) {
				
				switch(data.status){
					case 1:
						if (window.parent) {
							window.parent.location.reload();
						} else {
							window.location.reload();
						}
						break;
					case 0:
						$('div.status').html(data.statusMessage);
						break;
					case -1:
						$('div.status').html(data.errors);
						break;
				}
				
				$('input#checkout').removeAttr('disabled');
				
			}
		});
	});*/
});
