﻿//
rjco = {
    validations:
    {
        validate: function(txt, id, type) {
            if (txt == "") return;
            var outer = this;
            $.ajax({
                type: "POST",
                contentType: "application/json; charset=utf-8",
                url: "FormValidatorService.asmx/validate",
                data: "{value: '" + txt + "', type: '" + type + "' }",
                dataType: "json",
                success: function(msg) {
                    if (msg.d == true) {
                    } else {
                        rjco.validations.handleInvalid(id, type);
                    }
                },
                failure: function() {
                }
            });
        },
        handleInvalid: function(id, item) {
            $("#" + id).after($("<span class='error'>* Invalid " + item + "</span>"));
        }
    },
    submitAppointment: function(inputs, textboxes) {
        var jsonData = "{";
        inputs.each(function(i) {
            jsonData += $(this).attr('id') + ":" + $(this)[0].value + ", ";
        });
        textboxes.each(function(i) {
            jsonData += $(this).attr('id') + ":" + $(this)[0].value + ", ";
        });
        jsonData = jsonData.substring(0, jsonData.length - 2); // remove last comma
        jsonData += "}";

        alert(jsonData);
    }
}

rjco.validateField = function(txt, id) {
    var fieldTypes = new Array("email", "phone", "name");
    for (var i = 0; i < fieldTypes.length; i++) {
        if (id.toLowerCase().indexOf(fieldTypes[i]) >= 0) {
            rjco.validations.validate(txt, id, fieldTypes[i]);
        }
    }
}

// Declare delegate plugin
jQuery.delegate = function(rules) {
    return function(e) {
        var target = $(e.target);
        for (var selector in rules)
            if (target.is(selector)) return rules[selector].apply(this, $.makeArray(arguments));
    }
}
