﻿// Numbers, and dash only for a textbox
$.fn.ForceNumericOnly =
function() {
    return this.each(function() {
        $(this).keydown(function(e) {
            var key = e.charCode || e.keyCode || 0;
            // allow backspace, tab, delete, arrows, numbers and keypad numbers ONLY
            return (
                key == 8 ||
                key == 13 ||
                key == 9 ||
                key == 46 ||
                key == 109 ||
                (key >= 37 && key <= 40) ||
                (key >= 48 && key <= 57) ||
                (key >= 96 && key <= 105));
        })
    })
};

$(function() {
    $('.validateZip').ForceNumericOnly();
    $('input.searchButton').hover(
    // over
            function() {
                $(this).attr('src', this.src.replace('_out', '_over'));
            },
    // out
            function() {
                $(this).attr('src', this.src.replace('_over', '_out'));
            }
        );
    $('#aspnetForm').submit(function() {
        $.removeArrows();
        var zipText = $('.validateZip').val(),
                cityText = $('.validateCity').val(),
                stateText = $('.validateState').val(),
                dealerText = $('.validateDealer').val(),
                zipPass = zipText && zipText.match(/[0-9]{5,}/) ? true : false,
                dealerPass = dealerText && dealerText.length > 0 ? true : false,
                cityPass = cityText && cityText.length ? true : false,
                statePass = stateText && stateText.length > 0 ? true : false;

        if (zipPass) {
            return true;
        }
        if (dealerPass)
        { return true; }
        if (!zipPass && !cityPass && !statePass) {
            $('.validateZip').drawArrow();
            return false;
        } else if (!cityPass || !statePass) {
            if (cityPass && !statePass) {
                $('.validateState').drawArrow();
                return false;
            }
            if (statePass && !cityPass) {
                $('.validateCity').drawArrow();
                return false;
            }
        } else {
            return true;
        }
        return false;
    })
});

$.fn.drawArrow = function() {
    return this.each(function() {
        var w = $(this).width(),
                pos = $(this).position();
        $('<img>')
                .addClass('vArrow')
                .attr('src', 'images/validation-arrow.png')
                .css({
                    'position': 'absolute',
                    'left': pos.left + w + 8,
                    'top': pos.top + 1
                })
                .insertAfter(this);
    });
};
$.removeArrows = function() {
    $('.vArrow').remove();
};
