$(document).ready(function(event){

/*
    Test Fields for KBD Check
    -------------------------------------------------------------------------------*/
    function test_fields(event){
        var $field  = $(this).attr('name');
        var $value  = $('[name='+$field+']').val();
        
        if($('[name='+$field+']').siblings('kbd').text() == '*'){
            if($field == 'email'){
                if(!/.+@.+\.[a-zA-Z]{2,4}$/.test($value)){
                    $('[name='+$field+']').parent().addClass('fail');
                    $('[name='+$field+']').siblings('span').html('You must enter a valid email address.');
                } else {
                    $.post(
                        '/vegas_to_vermont/includes/functions/registration.inc.php?function=check_email',
                        { email:$value },
                        function(data){
                            if(data == 'pass'){
                                $('[name='+$field+']').parent().removeClass('fail');
                                $('[name='+$field+']').siblings('span').html('');
                            } else {
                                $('[name='+$field+']').parent().addClass('fail');
                                $('[name='+$field+']').siblings('span').html('This email is <b>already in use</b>.');
                            }
                        }
                    );
                }
            } else if($field == 'zip_code'){ 
                if($value.length == 6 || $value.length == 7){
                    $('[name='+$field+']').val($value.replace(/ /g,''));
                    !/^[0-9a-zA-Z]+$/.test($('[name='+$field+']').val()) ? $('[name='+$field+']').parent().addClass('fail') : $('[name='+$field+']').parent().removeClass('fail');
                } else if($value.length == 5){
                    !/^[0-9]+$/.test($value) ? $('[name='+$field+']').parent().addClass('fail') : $('[name='+$field+']').parent().removeClass('fail');
                } else if($value.length == 10){
                    var pass_zip= '0123456789-';
                    var hyphens = 0;
                    
                    for(var i=0; i<$value.length; i++){
                    	ext_zip = '' + $value.substring(i,i+1);
                    	if(ext_zip == '-') hyphens++;
                    	if(pass_zip.indexOf(ext_zip) == '-1'){ $('[name='+$field+']').parent().addClass('fail'); }
                    	if((hyphens > 1) || (($value.length == 10) && ''+$value.charAt(5) != '-')){ 
                    		$('[name='+$field+']').parent().addClass('fail');
                    	} else {
                    		$('[name='+$field+']').parent().removeClass('fail');
                    	}
                    }
                } else { $('[name='+$field+']').parent().addClass('fail'); }

            } else if($field == 'username'){
                if($value != ''){
                    $.post(
                        '/vegas_to_vermont/includes/functions/registration.inc.php?function=check_username',
                        { username:$value },
                        function(data){
                            if(data == 'pass'){
                                $('[name='+$field+']').parent().removeClass('fail');
                                $('[name='+$field+']').siblings('span').html('This username is available.');
                            } else {
                                $('[name='+$field+']').parent().addClass('fail');
                                $('[name='+$field+']').siblings('span').html('This username is <b>not</b> available.');
                            }
                        }
                    );
                } else {
                    if($('[name=email]').val() != ''){
                        $('[name='+$field+']').parent().removeClass('fail');
                        $('[name='+$field+']').val($('[name=email]').val());
                    } else {
                        $('[name='+$field+']').parent().addClass('fail');
                        $('[name='+$field+']').siblings('span').html('You must select a username.');
                    }
                }
            } else if($field == 'password_confirm'){
                if($('[name='+$field+']').val() == $('[name=password]').val() && $('[name='+$field+']').val() != ''){
                    $('[name='+$field+']').parent().removeClass('fail');
                    $('[name='+$field+']').siblings('span').html("You've confirmed your password.");
                } else {
                    $('[name='+$field+']').parent().addClass('fail');
                    $('[name='+$field+']').siblings('span').html('Your passwords must match.');
                }
            } else if($field == 'agree'){
                if($('input[name='+$field+']').is(':checked')){
                    $('[name='+$field+']').parent().removeClass('fail');
                    $('[name='+$field+']').siblings('span').html("You've agreed to the V2V2 terms.");
                } else {
                    $('[name='+$field+']').parent().addClass('fail');
                    $('[name='+$field+']').siblings('span').html('You must read and agree to the V2V2 terms.');
                }
            } else {
                $value == '' ? $('[name='+$field+']').parent().addClass('fail') : $('[name='+$field+']').parent().removeClass('fail');
            }
        }
    }
    
    
/*
    Submit Registration
    -------------------------------------------------------------------------------*/
    function submit_registration(event){
        $('#user_registration input,select').blur();
        
        if($('#user_registration p.fail').length > 0){
            alert('There are errors in your registration. Please review and re-submit.');
        } else {
            $('form#user_registration').submit();
        }
        
        return false;
    }
    
    
    
/*
    Initialize Actions
    -------------------------------------------------------------------------------*/
    $('#user_registration input,select').bind('blur',test_fields);
    $('#user_registration a.register').bind('click',submit_registration);
    $('#user_registration input[name=mailing_list]').bind('click',function(event){ window.open('http://www.cabotcheese.coop/forms/subscribe.php','V2V',"toolbar=0,location=1,directories=0,status=1,menubar=1,scrollbars=1,resizable=1,width=950,height=500"); });

    $('#user_registration a.request').bind('click',submit_registration);
});