    $(document).ready(function(event){
        $('[showDefault="yes"]').focus(function(event){
            $emtpyVal = $(this).attr('default');
            if($(this).attr('value') == $emtpyVal){ 
                $(this).attr('value', ''); 
            }
        });
        
        $('[showDefault="yes"]').blur(function(event){
            $emtpyVal = $(this).attr('default');
            if($(this).attr('value') == ''){ 
                $(this).attr('value', $emtpyVal); 
            } else {
                fieldOK('#' + $(this).attr('id'));
            }
        });
        
        $('#REQ_QUOTE').click(function(event){
            if($(this).is(':checked')){
                $('#enter_family_fields').show(); 
                $('#enter_date_fields').show();
            } else {
                $('#enter_family_fields').hide(); 
                $('#enter_date_fields').hide();
            }
        });
        
        $('#interests').click(function(event){
            $(this).attr('checked') ? $('#additional_interests').fade_in() : $('#additional_interests').fade_out();
        });
        

        function reformattedDate(date) {
            var dte     = new Date(date);
            var m       = dte.getMonth()+1;
            var d       = dte.getDate();
            var y       = dte.getFullYear();
            
            y < 2000    ? y = parseInt(y)+100 : '';
            m < 10      ? m = '0'+m : '';
            d < 10      ? d = '0'+d : '';
            
            return m +'/'+ d +'/'+ y;
        }
    
        $('#enter_arrival').blur(function(event){
            var thisDate    = $(this).val();
            
            if(thisDate && thisDate != undefined && thisDate != 'Arrival'){
                var niceDate = reformattedDate(thisDate);
                $(this).val(niceDate);
            }
            
            $(this).val()  == 'NaN/NaN/NaN' ? $(this).val('Arrival') : '';
        });

        $('#enter_departure').blur(function(event){
            var thisDate = $(this).val();
            
            if(thisDate && thisDate != undefined && thisDate != 'Departure'){
                var niceDate = reformattedDate(thisDate);
                $(this).val(niceDate);
            }
            
            $(this).val()  == 'NaN/NaN/NaN' ? $(this).val('Departure') : '';
        });

        $('#enter_phone').blur(function(event){
            var thisPhone = $(this).val();
            var nicePhone = thisPhone.replace(/[^0-9]/g,'');
            $(this).val(nicePhone);
        });


        var $myStatus       = true;
        var $failedFields   = '';

        function fieldFailed(name){
            var def = $(name).attr('default');
            
            $(name).addClass('bad');
            if($failedFields != ''){ $failedFields += ', '; }
            $failedFields += def;
            
		}

        function fieldOK(name){
            var val         = $(name).val();
            var def         = $(name).attr('default');
            
            if(val != '' && val != def){
                $(name).removeClass('bad');
                
                return true;
            } else {
                $(name).addClass('bad');
                if($failedFields != ''){ $failedFields += ', '; }
                $failedFields += def;
                
                return false;
            }
        }
        
        function selectOK(name) {
            var val = $(name).val();
            var def = $(name).attr('default');
            
            if(val == ''){
                $(name).addClass('bad');
                if($failedFields != ''){ $failedFields += ', '; }
                $failedFields += def;
                
                return false;
            } else {
                $(name).removeClass('bad');
                
                return true;
            }
        }
        
         function emailOK(name){
            var val          = $(name).val();
            var def          = $(name).attr('default');
            
			var illegalChars = /[\(\)\<\>\,\;\:\\\/\"\[\]]/;
			var emailFilter  = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
			
			// ALTERNATIVE REGEX EMAIL FILTERS
			// var emailFilter  = /^.+@.+\..{2,3,4,6}$/;
			// var emailFilter  = /\w{1,}[@][\w\-]{1,}([.]([\w\-]{1,})){1,3}$/;
            
            if(val != '' && val != def){
				if (val.match(illegalChars)) {
				    window.alert('The email address contains illegal characters.');
					fieldFailed(name);
            		return false;
				}
				if (!(emailFilter.test(val))) { 
				    window.alert('Please enter a valid email address.');
					fieldFailed(name);
            		return false;
				}            

                $(name).removeClass('bad');
                return true;
           } else {
				fieldFailed(name);
            	return false;
            }
        }
       
        $('form#enter_to_win_form').submit(function(event){            
            $myStatus                       = true;
            $failedFields                   = '';
            
            if($('#enter_mailer').length > 0 && !fieldOK('#enter_mailer')){  $myStatus = false; }
            !fieldOK('#enter_promo_code')   ? $myStatus = false : '';
            !fieldOK('#enter_first_name')   ? $myStatus = false : '';
            !fieldOK('#enter_last_name')    ? $myStatus = false : '';
            !fieldOK('#enter_email')        ? $myStatus = false : '';
            !emailOK('#enter_email')        ? $myStatus = false : '';
            !fieldOK('#enter_address')      ? $myStatus = false : '';
            !fieldOK('#enter_city')         ? $myStatus = false : '';
            !fieldOK('#enter_zip')          ? $myStatus = false : '';
            
            if($('#enter_country').val()   != '' && $('#enter_country').val() == 'United States'){
                !selectOK('#enter_state')   ? $myStatus = false : '';
            }
            
            !selectOK('#enter_country')     ? $myStatus = false : '';
            
            if($('#REQ_QUOTE').is(':checked')){
            
                if ( !fieldOK('#enter_adults') )       $myStatus = false;
                if ( !fieldOK('#enter_kids') )         $myStatus = false;
                if ( $('#enter_kids').val() != '' && $('#enter_kids').val() != 0 ) {
                    if ( !fieldOK('#enter_kid_ages') ) $myStatus = false;
                } else {
                	$('#enter_kid_ages').removeClass('bad');
                }
                if ( !fieldOK('#enter_departure') )    $myStatus = false;
                if ( !fieldOK('#enter_arrival') )      $myStatus = false;
            }
            
            if($myStatus == false){
                window.alert ('Failed Fields: ' + $failedFields);
                return false;
            }
            

            $('#enter_to_win').addClass('dim');
            return true;
        });
        
        // Show these areas be default
        $('form#request_a_quote #enter_family_fields').show();
        $('form#request_a_quote #enter_date_fields').show();
        
        $('form#request_a_quote').submit(function(event) {            
            $myStatus = true;
            $failedFields = '';
            if ( !fieldOK('#enter_first_name') )       $myStatus = false;
            if ( !fieldOK('#enter_last_name') )        $myStatus = false;
            if ( !fieldOK('#enter_email') )            $myStatus = false;
            if ( !emailOK('#enter_email') )       	   $myStatus = false;
            if ( !fieldOK('#enter_address') )          $myStatus = false;
            if ( !fieldOK('#enter_city') )             $myStatus = false;
            if ( !fieldOK('#enter_zip') )              $myStatus = false;
            
            if ( $('#enter_country').val() != '' && $('#enter_country').val() == 'United States' ) {
                if ( !selectOK('#enter_state') )       $myStatus = false;
            }
            if ( !selectOK('#enter_country') )         $myStatus = false;
            
            
            if ( !fieldOK('#enter_adults') )       $myStatus = false;
            if ( !fieldOK('#enter_kids') )         $myStatus = false;
            if ( $('#enter_kids').val() != '' && $('#enter_kids').val() != 0 ) {
                if ( !fieldOK('#enter_kid_ages') ) $myStatus = false;
            }
            if ( !fieldOK('#enter_departure') )    $myStatus = false;
            if ( !fieldOK('#enter_arrival') )      $myStatus = false;
            
            
            if ( $myStatus == false ) {
                window.alert ('Failed Fields: ' + $failedFields);
                return false;
            }
            

            $('#enter_to_win').addClass('dim');
            return true;
        });
    });
    
