$j(document).ready(function(){

    var form = $j('#content form');
    $j('input[type=submit]', form).bind('click', function(){
        $j('input.blink', form).each(function(i, elem){
            if ($j(this).val() == $j(this).attr('title')) {
                $j(this).val('');
            }
        });
    });
    
    // customize form validation error message display..
    $j('#form-return-request').bind('submit', function(event){

        $j('label', '#form-return-request').css('color', 'black');
        
        var errMsgs = [];
        var errors = 0;
        /**
        $j.each($j(':input', '#form-return-request'), function(i, val){
            var elem = $j(this);
            if (elem.hasClass('validation-failed')) { //console.log('name: ' + elem.attr('name'));
                elem.next('.validation-advice').addClass('no-display');
                errMsgs = _updateError(elem.next('.validation-advice').text(), errMsgs);
                elem.next('label').css('color', 'red');
                elem.siblings('label:last').css('color', 'red');
                elem.closest('label').css('color', 'red');
                errors++;
            }
        });
        */
        /**
        // validate form
        var errRequired = false;
        $j.each($j(':input', '#form-return-request'), function(i, vale){
            var elem = $j(this);
            var elemVal = $j.trim(elem.val());
            if (elem.hasClass('required-entry') && (elemVal.length == 0)) { // validate required fields..
               _setErrorLabel(elem);
               errRequired = true;
               return;
            } else if (elem.hasClass('validate-email')) {
                if (!validateEmail(elemVal)) {
                    _setErrorLabel(elem);
                    errMsgs[errMsgs.length] = 'Please enter valid email address.';
                    errors++;
                }
            } else if (elem.hasClass('validate-digits')) {
                if (!validateDigit(elemVal)) {
                    _setErrorLabel(elem);
                    errMsgs[errMsgs.length] = 'Please enter digits only.';
                    errors++;
                }
            }
        });
        
        if (errRequired) {
            errMsgs[errMsgs.length] = 'Error. Please fill in all required fields.';
            errors++;
        }
        
        // validate phone digits only..
        var phone = $j.trim($j('#phone1').val()) + $j.trim($j('#phone2').val()) + $j.trim($j('#phone3').val());
        if (!validateDigit(phone)) {
            $j('#phone1').prev('label').css('color', 'red');
            errMsgs[errMsgs.length] = 'Please enter digit only phone numbers.';
            errors++;
        }       
        */
       
        // validate state..
        var elem = $j('select.required-entry', '#form-return-request');
        if (elem.length > 0) {
            if ($j.trim(elem.val()).length == 0) {
                elem.parent().prev('label').css('color', 'red');
                errMsgs[errMsgs.length] = 'State is required field'; // _updateError(elem.next('.validation-advice').text(), errMsgs);
                errors++;
            }
        }
        
        // handle 'Return Item' checkbox validation
        if ($j('.return-item:checked').length < 1) {
            $j.each($j('.return-item', $j(this)), function(i, val){
                $j(this).closest('label').css('color', 'red');
            });
            errMsgs[errMsgs.length] = 'Please choose at least one item to return';
            errors++;
        }
        
        if (errors) {
            
            //$j('.error').removeClass('no-display').show();
            $j('.error').html(errMsgs.join('<br />'));            
            //Event.stop(event);
            event.preventDefault();
            event.stopPropagation();
            return false;
        }

    });

});

function _updateError(errMsg, errMsgs)
{
    var msg = 'Error. Please fill in all required fields.';
    if (errMsg == 'This is a required field.') {
        if (inArray(msg, errMsgs) != true) {
            errMsgs[errMsgs.length] = msg;
        }
    } else {
        errMsgs[errMsgs.length] = errMsg;
    }
    return errMsgs;
}

function _setErrorLabel(elem)
{
    elem.prev('label').css('color', 'red');
    elem.closest('label').css('color', 'red');
    elem.siblings('label').css('color', 'red');
}
