(function($) {
$.fn.validationEngine = function(settings) {
if ($.validationEngineLanguage) { // IS THERE A LANGUAGE LOCALISATION ?
allRules = $.validationEngineLanguage.allRules
} else {
allRules = { "required": { // Add your regex rules here, you can take telephone as an example
"regex": "none",
"alertText": "* Kötelező megadni !",
"alertTextCheckboxMultiple": "* A feltételek elfogadása kötelező!",
"alertTextCheckboxe": "* A feltételek elfogadása kötelező!"
},
"length": {
"regex": "none",
"alertText": "*Between ",
"alertText2": " and ",
"alertText3": " characters allowed"
},
"minCheckbox": {
"regex": "none",
"alertText": "* Checks allowed Exceeded"
},
"confirm": {
"regex": "none",
"alertText": "* Nem egyezik!"
},
"telephone": {
"regex": "/^[0-9\-\(\)\ ]+$/",
"alertText": "* Kérjük, adja meg a telefonszámát!"
},
"email": {
"regex": "/^[a-zA-Z0-9_\.\-]+\@([a-zA-Z0-9\-]+\.)+[a-zA-Z0-9]{2,4}$/",
"alertText": "* Hibás e-mail cím!"
},
"onlyNumber": {
"regex": "/^[0-9\ ]+$/",
"alertText": ""
},
"noSpecialCaracters": {
"regex": "/^[0-9a-zA-Z]+$/",
"alertText": ""
},
"ajaxUser": {
"file": "validateUser.php",
"alertTextOk": "* This user is available",
"alertTextLoad": "* Loading, please wait",
"alertText": "* This user is already taken"
},
"ajaxName": {
"file": "validateUser.php",
"alertText": "* This name is already taken",
"alertTextOk": "* This name is available",
"alertTextLoad": "* Loading, please wait"
},
"fax": {
"regex": "none",
"alertText": ""
},
"phone": {
"regex": "none",
"alertText": "* Kérjük, adja meg a telefonszámát!"
},
"roomName": {
"regex": "none",
"alertText": ""
},
"alldate": {
"regex": "/^([0]?[1-9]|[1|2][0-9]|[3][0|1])[./-]([0]?[1-9]|[1][0-2])[./-]([0-9]{4}|[0-9]{2})$|^([0-9]{4}|[0-9]{2})[./-]([0]?[1-9]|[1][0-2])[./-]([0]?[1-9]|[1|2][0-9]|[3][0|1])$/",
"alertText": ""
},
"date": {
"regex": "(^[0-9]{4}\-[0-9]{1,2}\-[0-9]{1,2}$)|(^[0-9]{4}\/[0-9]{1,2}\/[0-9]{1,2}$)|(^[0-9]{4}\.[0-9]{1,2}\.[0-9]{1,2}$)|(^[0-9]{1,2}\-[0-9]{1,2}\-[0-9]{4}$)|(^[0-9]{1,2}\/[0-9]{1,2}\/[0-9]{4}$)",
"alertText": ""
},
"ifrequired": {
"regex": "none",
"alertText": "* Kötelező megadni !"
},
"requiredcb": {
"regex": "none",
"alertText": "* Kötelező megadni !"
},
"ifRequiredAll": {
"regex": "none",
"alertText": "* Válasszon várost vagy régiót!"
},
"ifRequiredAll2": {
"regex": "none",
"alertText": "* Kötelező megadni !"
},
"opinionValidate": {
"regex": "none",
"alertText": "* Kérjük, töltse ki az összes rovatot!"
},
"name": {
"regex": "none",
"alertText": "* Kérjük, adja meg a nevét!"
},
"guestname": {
"regex": "none",
"alertText": "* Kérjük, adja meg a vendégek neveit"
},
"address": {
"regex": "none",
"alertText": "* Kérjük, adja meg a címét!"
},
"creditCard": {
"regex": "none",
"alertText": "* Hibás adat!"
},
"creditCardSecurity": {
"regex": "none",
"alertText": "* Hibás adat!"
},
"resignation": {
"regex": "none",
"alertText": "* Kérjük, adja meg a lemondás okát!"
}
}
}
settings = jQuery.extend({
allrules: allRules,
inlineValidation: true,
ajaxSubmit: false,
promptPosition: "topRight", // OPENNING BOX POSITION, IMPLEMENTED: topLeft, topRight, bottomLeft, centerRight, bottomRight
success: false,
mvcAjaxSubmit: false,
searchQuarter: false,
failure: function() { }
}, settings);
$.validationEngine.ajaxValidArray = new Array() // ARRAY FOR AJAX: VALIDATION MEMORY
$(this).bind("submit", function(caller) { // ON FORM SUBMIT, CONTROL AJAX FUNCTION IF SPECIFIED ON DOCUMENT READY
$.validationEngine.onSubmitValid = true;
if ($.validationEngine.submitValidation(this, settings) == false) {
if ($.validationEngine.submitForm(this, settings) == true) { return false; }
} else {
settings.failure && settings.failure();
return false;
}
})
if (settings.inlineValidation == true) { // Validating Inline ?
$(this).find("[class^=validate][type=checkbox]").bind("click", function(caller) { _inlinEvent(this) })
function _inlinEvent(caller) {
if ($.validationEngine.intercept == false || !$.validationEngine.intercept) { // STOP INLINE VALIDATION THIS TIME ONLY
$.validationEngine.onSubmitValid = false;
$.validationEngine.loadValidation(caller, settings);
} else {
$.validationEngine.intercept = false;
}
}
}
};
$.validationEngine = {
submitForm: function(caller) {
if ($.validationEngine.settings.searchQuarter) {
onBegin();
//$("#loader").show();
$("#loader-text").show();
}
if ($.validationEngine.settings.ajaxSubmit) {
$.ajax({
type: "POST",
url: $.validationEngine.settings.ajaxSubmitFile,
async: true,
data: $(caller).serialize(),
success: function(data) {
if (data == "true") { // EVERYTING IS FINE, SHOW SUCCESS MESSAGE
$(caller).css("opacity", 1)
$(caller).animate({ opacity: 0, height: 0 }, function() {
$(caller).css("display", "none")
$(caller).before("
" + $.validationEngine.settings.ajaxSubmitMessage + "
")
$.validationEngine.closePrompt(".formError", true)
$(".ajaxSubmit").show("slow")
if ($.validationEngine.settings.success) { // AJAX SUCCESS, STOP THE LOCATION UPDATE
$.validationEngine.settings.success && $.validationEngine.settings.success();
return false;
}
})
} else { // HOUSTON WE GOT A PROBLEM (SOMETING IS NOT VALIDATING)
data = eval("(" + data + ")");
errorNumber = data.jsonValidateReturn.length
for (index = 0; index < errorNumber; index++) {
fieldId = data.jsonValidateReturn[index][0];
promptError = data.jsonValidateReturn[index][1];
type = data.jsonValidateReturn[index][2];
$.validationEngine.buildPrompt(fieldId, promptError, type);
}
}
}
})
return false;
}
//ASCORP extend
if ($.validationEngine.settings.mvcAjaxSubmit) {
var form = $.validationEngine.settings.mvcAjaxSubmitForm;
SubmitMvcAjaxForm(form);
return true;
}
if ($.validationEngine.settings.success) { // AJAX SUCCESS, STOP THE LOCATION UPDATE
$.validationEngine.settings.success && $.validationEngine.settings.success();
return true;
}
return false;
},
buildPrompt: function(caller, promptText, type, ajaxed) { // ERROR PROMPT CREATION AND DISPLAY WHEN AN ERROR OCCUR
//$(caller).css('border', '1px solid #ee0101');
$(caller).addClass('error');
var divFormError = document.createElement('div')
var formErrorContent = document.createElement('div')
$(divFormError).addClass("formError")
return $(divFormError).animate({ "opacity": 0.87 }, function() { return true; });
},
updatePromptText: function(caller, promptText, type, ajaxed) { // UPDATE TEXT ERROR IF AN ERROR IS ALREADY DISPLAYED
updateThisPrompt = $(caller).attr("id");
updateThisPrompt = "." + updateThisPrompt;
(type == "pass") ? $(updateThisPrompt).addClass("greenPopup") : $(updateThisPrompt).removeClass("greenPopup");
(type == "load") ? $(updateThisPrompt).addClass("blackPopup") : $(updateThisPrompt).removeClass("blackPopup");
(ajaxed) ? $(updateThisPrompt).addClass("ajaxed") : $(updateThisPrompt).removeClass("ajaxed");
$(updateThisPrompt).find(".errorTextContent").html(promptText)
callerTopPosition = $(caller).offset().top;
inputHeight = $(updateThisPrompt).height()
if ($.validationEngine.settings.promptPosition == "bottomLeft" || $.validationEngine.settings.promptPosition == "bottomRight") {
callerHeight = $(caller).height()
callerTopPosition = callerTopPosition + callerHeight + 15
}
if ($.validationEngine.settings.promptPosition == "centerRight") { callerleftPosition += callerWidth + 13; }
if ($.validationEngine.settings.promptPosition == "topLeft" || $.validationEngine.settings.promptPosition == "topRight") {
callerTopPosition = callerTopPosition - inputHeight - 10
}
$(updateThisPrompt).animate({
top: callerTopPosition
});
},
loadValidation: function(caller, settings) { // GET VALIDATIONS TO BE EXECUTED
$.validationEngine.settings = settings
rulesParsing = $(caller).attr('class');
rulesRegExp = /\[(.*)\]/;
getRules = rulesRegExp.exec(rulesParsing);
str = getRules[1]
pattern = /\W+/;
result = str.split(pattern);
var validateCalll = $.validationEngine.validateCall(caller, result)
return validateCalll
},
validateCall: function(caller, rules) { // EXECUTE VALIDATION REQUIRED BY THE USER FOR THIS FIELD
var promptText = ""
var prompt = $(caller).attr("id");
var caller = caller;
ajaxValidate = false
var callerName = $(caller).attr("name");
$.validationEngine.isError = false;
$.validationEngine.showTriangle = true
callerType = $(caller).attr("type");
for (i = 0; i < rules.length; i++) {
switch (rules[i]) {
case "optional":
if (!$(caller).val()) {
$.validationEngine.closePrompt(caller)
return $.validationEngine.isError
}
break;
case "required":
_required(caller, rules);
break;
case "custom":
_customRegex(caller, rules, i);
break;
case "ajax":
if (!$.validationEngine.onSubmitValid) {
_ajax(caller, rules, i);
}
break;
case "length":
_length(caller, rules, i, rules[i]);
break;
case "minCheckbox":
_minCheckbox(caller, rules, i);
break;
case "confirm":
_confirm(caller, rules, i);
break;
case "package":
_lmlength(caller, rules, i, rules[i]);
break;
case "service":
_lmlength(caller, rules, i, rules[i]);
break;
case "fax":
_lmlength(caller, rules, i, rules[i]);
break;
case "phone":
_lmlength(caller, rules, i, rules[i]);
break;
case "roomName":
_lmlength(caller, rules, i, rules[i]);
break;
case "roomDesc":
_lmlength(caller, rules, i, rules[i]);
break;
case "cancelCondition":
_lmlength(caller, rules, i, rules[i]);
break;
case "requiredcb":
_requiredcb(caller, rules, i);
break;
case "ifrequired":
_ifrequired(caller, rules, i);
break;
case "ifRequiredAll":
_ifRequiredAll(caller, rules, i);
break;
case "ifRequiredAll2":
_ifRequiredAll2(caller, rules, i);
break;
case "opinionValidate":
_ifRequiredAll3(caller, rules, i);
break;
case "lmcustom":
_lmRegex(caller, rules, i);
break;
case "name":
_length(caller, rules, i, rules[i]);
break;
case "guestname":
_length(caller, rules, i, rules[i]);
break;
case "address":
_length(caller, rules, i, rules[i]);
break;
case "creditCard":
_creditCard(caller, rules, i);
break;
case "creditCardSecurity":
_creditCardSecurity(caller, rules, i);
break;
case "resignation":
_length(caller, rules, i, rules[i]);
break;
default: ;
};
};
if ($.validationEngine.isError == true) {
radioHackOpen();
if ($.validationEngine.isError == true) { // show only one
($("div." + prompt).size() == 0) ? $.validationEngine.buildPrompt(caller, promptText, "error") : $.validationEngine.updatePromptText(caller, promptText);
}
} else {
radioHackClose();
$.validationEngine.closePrompt(caller);
}
/* UNFORTUNATE RADIO AND CHECKBOX GROUP HACKS */
/* As my validation is looping input with id's we need a hack for my validation to understand to group these inputs */
function radioHackOpen() {
if ($("input[name=" + callerName + "]").size() > 1 && callerType == "radio") { // Hack for radio group button, the validation go the first radio
caller = $("input[name=" + callerName + "]:first");
$.validationEngine.showTriangle = false;
var callerId = "." + $(caller).attr("id");
if ($(callerId).size() == 0) { $.validationEngine.isError = true; } else { $.validationEngine.isError = false; }
}
if ($("input[name=" + callerName + "]").size() > 1 && callerType == "checkbox") { // Hack for checkbox group button, the validation go the first radio
caller = $("input[name=" + callerName + "]:first");
$.validationEngine.showTriangle = false;
var callerId = "div." + $(caller).attr("id");
if ($(callerId).size() == 0) { $.validationEngine.isError = true; } else { $.validationEngine.isError = false; }
}
}
function radioHackClose() {
if ($("input[name=" + callerName + "]").size() > 1 && callerType == "radio") { // Hack for radio group button, the validation go the first radio
caller = $("input[name=" + callerName + "]:first");
}
if ($("input[name=" + callerName + "]").size() > 1 && callerType == "checkbox") { // Hack for checkbox group button, the validation go the first radio
caller = $("input[name=" + callerName + "]:first");
}
}
/* VALIDATION FUNCTIONS */
function _required(caller, rules) { // VALIDATE BLANK FIELD
callerType = $(caller).attr("type");
if (callerType == "text" || callerType == "password" || callerType == "textarea") {
if (!$(caller).val()) {
$.validationEngine.isError = true;
promptText += $.validationEngine.settings.allrules[rules[i]].alertText + "
";
$("#errorText").show();
}
}
if (callerType == "radio" || callerType == "checkbox") {
callerName = $(caller).attr("name");
if ($("input[name=" + callerName + "]:checked").size() == 0) {
$.validationEngine.isError = true;
if ($("input[name=" + callerName + "]").size() == 1) {
promptText += $.validationEngine.settings.allrules[rules[i]].alertTextCheckboxe + "
";
} else {
promptText += $.validationEngine.settings.allrules[rules[i]].alertTextCheckboxMultiple + "
";
}
}
}
if (callerType == "select-one") { // added by paul@kinetek.net for select boxes, Thank you
callerName = $(caller).attr("id");
if (!$("select[name=" + callerName + "]").val()) {
$.validationEngine.isError = true;
promptText += $.validationEngine.settings.allrules[rules[i]].alertText + "
";
}
}
if (callerType == "select-multiple") { // added by paul@kinetek.net for select boxes, Thank you
callerName = $(caller).attr("id");
if (!$("#" + callerName).val()) {
$.validationEngine.isError = true;
promptText += $.validationEngine.settings.allrules[rules[i]].alertText + "
";
}
}
}
function _customRegex(caller, rules, position) { // VALIDATE REGEX RULES
customRule = rules[position + 1];
pattern = eval($.validationEngine.settings.allrules[customRule].regex);
if (!pattern.test($(caller).attr('value')) && ($(caller).attr('value') != "")) {
$.validationEngine.isError = true;
promptText += $.validationEngine.settings.allrules[customRule].alertText + "
";
}
}
function _lmRegex(caller, rules, position) { // VALIDATE REGEX RULES
customRule = rules[position + 1];
var pattern = $.validationEngine.settings.allrules[customRule].regex;
var value = $(caller).attr('value');
if (!value.match(pattern) && (value != "")) {
$.validationEngine.isError = true;
promptText += $.validationEngine.settings.allrules[customRule].alertText + "
";
}
}
function _ajax(caller, rules, position) { // VALIDATE AJAX RULES
customAjaxRule = rules[position + 1];
postfile = $.validationEngine.settings.allrules[customAjaxRule].file;
fieldValue = $(caller).val();
ajaxCaller = caller;
fieldId = $(caller).attr("id");
ajaxValidate = true;
ajaxisError = $.validationEngine.isError;
/* AJAX VALIDATION HAS ITS OWN UPDATE AND BUILD UNLIKE OTHER RULES */
if (!ajaxisError) {
$.ajax({
type: "POST",
url: postfile,
async: true,
data: "validateValue=" + fieldValue + "&validateId=" + fieldId + "&validateError=" + customAjaxRule,
beforeSend: function() { // BUILD A LOADING PROMPT IF LOAD TEXT EXIST
if ($.validationEngine.settings.allrules[customAjaxRule].alertTextLoad) {
if (!$("div." + fieldId)[0]) {
return $.validationEngine.buildPrompt(ajaxCaller, $.validationEngine.settings.allrules[customAjaxRule].alertTextLoad, "load");
} else {
$.validationEngine.updatePromptText(ajaxCaller, $.validationEngine.settings.allrules[customAjaxRule].alertTextLoad, "load");
}
}
},
success: function(data) { // GET SUCCESS DATA RETURN JSON
data = eval("(" + data + ")"); // GET JSON DATA FROM PHP AND PARSE IT
ajaxisError = data.jsonValidateReturn[2];
customAjaxRule = data.jsonValidateReturn[1];
ajaxCaller = $("#" + data.jsonValidateReturn[0])[0];
fieldId = ajaxCaller;
ajaxErrorLength = $.validationEngine.ajaxValidArray.length
existInarray = false;
if (ajaxisError == "false") { // DATA FALSE UPDATE PROMPT WITH ERROR;
_checkInArray(false) // Check if ajax validation alreay used on this field
if (!existInarray) { // Add ajax error to stop submit
$.validationEngine.ajaxValidArray[ajaxErrorLength] = new Array(2)
$.validationEngine.ajaxValidArray[ajaxErrorLength][0] = fieldId
$.validationEngine.ajaxValidArray[ajaxErrorLength][1] = false
existInarray = false;
}
$.validationEngine.ajaxValid = false;
promptText += $.validationEngine.settings.allrules[customAjaxRule].alertText + "
";
$.validationEngine.updatePromptText(ajaxCaller, promptText, "", true);
} else {
_checkInArray(true)
$.validationEngine.ajaxValid = true;
if ($.validationEngine.settings.allrules[customAjaxRule].alertTextOk) { // NO OK TEXT MEAN CLOSE PROMPT
$.validationEngine.updatePromptText(ajaxCaller, $.validationEngine.settings.allrules[customAjaxRule].alertTextOk, "pass", true);
} else {
ajaxValidate = false;
$.validationEngine.closePrompt(ajaxCaller);
}
}
function _checkInArray(validate) {
for (x = 0; x < ajaxErrorLength; x++) {
if ($.validationEngine.ajaxValidArray[x][0] == fieldId) {
$.validationEngine.ajaxValidArray[x][1] = validate
existInarray = true;
}
}
}
}
});
}
}
function _confirm(caller, rules, position) { // VALIDATE FIELD MATCH
confirmField = rules[position + 1];
if ($(caller).attr('value') != $("#" + confirmField).attr('value')) {
$.validationEngine.isError = true;
promptText += $.validationEngine.settings.allrules["confirm"].alertText + "
";
}
}
function _requiredcb(caller, rules, position) { // VALIDATE FIELD MATCH
requiredcb = rules[position + 1];
callerName = $("#" + requiredcb).attr("name");
if ($("input[name=" + callerName + "]:checked").size() == 0)
{
$.validationEngine.isError = true;
promptText += $.validationEngine.settings.allrules["requiredcb"].alertText + "
";
}
$("#errorText").show();
}
function _ifrequired(caller, rules, position) { // VALIDATE FIELD MATCH
ifrequiredField = rules[position + 1];
if ($("#" + ifrequiredField).attr('value') != "" && !$(caller).val()) {
$.validationEngine.isError = true;
promptText += $.validationEngine.settings.allrules["ifrequired"].alertText + "
";
$("#errorText").show();
}
}
function _ifRequiredAll(caller, rules, position) { // VALIDATE FIELD MATCH
field1 = rules[position + 1];
field2 = rules[position + 2];
if (!$("#" + field1).val() && !$("#" + field2).val()) {
$.validationEngine.isError = true;
promptText += $.validationEngine.settings.allrules["ifRequiredAll"].alertText + "
";
$("#errorText").show();
}
}
function _ifRequiredAll2(caller, rules, position) { // VALIDATE FIELD MATCH
field1 = rules[position + 1];
field2 = rules[position + 2];
if ((($("#" + field1).attr('value') != "" || $("#" + field2).attr('value') != "") && $(caller).attr('value') == "")) {
$.validationEngine.isError = true;
promptText += $.validationEngine.settings.allrules["ifRequiredAll"].alertText + "
";
$("#errorText").show();
}
}
function _ifRequiredAll3(caller, rules, position) { // VALIDATE FIELD MATCH
hidden = rules[position + 1];
if ($("#" + hidden).val() == "notValid") {
$.validationEngine.isError = true;
promptText += $.validationEngine.settings.allrules["opinionValidate"].alertText + "
";
$("#errorText").show();
}
}
function _creditCard(caller, rules, position) { // VALIDATE FIELD MATCH
creditCardTypeField = rules[position + 1];
var cardNumbersOnly = $(caller).val().replace(/ /g,"");
var cardNumberLength = cardNumbersOnly.length;
var isValid = false;
switch ($("#" + creditCardTypeField).attr('value'))
{
case "visa":
{
if (cardNumberLength != 16 || cardNumbersOnly[0] != 4) {
$.validationEngine.isError = true;
//promptText += $.validationEngine.settings.allrules["creditCard"].alertText + "
";
isValid = false;
}
else
{
isValid = true;
}
break;
}
case "amex":
{
if (cardNumberLength != 15 || cardNumbersOnly[0] != 3) {
$.validationEngine.isError = true;
//promptText += $.validationEngine.settings.allrules["creditCard"].alertText + "
";
isValid = false;
}
else
{
isValid = true;
}
break;
}
case "mastercard":
{
if (cardNumberLength != 16 || cardNumbersOnly[0] != 5) {
$.validationEngine.isError = true;
//promptText += $.validationEngine.settings.allrules["creditCard"].alertText + "
";
isValid = false;
}
else
{
isValid = true;
}
break;
}
}
if (isValid){
var numberProduct;
var numberProductDigitIndex;
var checkSumTotal = 0;
for (digitCounter = cardNumberLength - 1;
digitCounter >= 0;
digitCounter--)
{
checkSumTotal += parseInt (cardNumbersOnly.charAt(digitCounter));
digitCounter--;
numberProduct = String((cardNumbersOnly.charAt(digitCounter) * 2));
for (var productDigitCounter = 0;
productDigitCounter < numberProduct.length;
productDigitCounter++)
{
checkSumTotal +=
parseInt(numberProduct.charAt(productDigitCounter));
}
}
isValid = (checkSumTotal % 10 == 0);
}
if (!isValid)
{
$.validationEngine.isError = true;
promptText += $.validationEngine.settings.allrules["creditCard"].alertText + "
";
}
}
function _creditCardSecurity(caller, rules, position) { // VALIDATE FIELD MATCH
creditCardTypeField = rules[position + 1];
switch ($("#" + creditCardTypeField).attr('value'))
{
case "visa":
{
if ($(caller).val().length != 3) {
$.validationEngine.isError = true;
promptText += $.validationEngine.settings.allrules["creditCardSecurity"].alertText + "
";
}
break;
}
case "amex":
{
if ($(caller).val().length != 4) {
$.validationEngine.isError = true;
promptText += $.validationEngine.settings.allrules["creditCardSecurity"].alertText + "
";
}
break;
}
case "mastercard":
{
if ($(caller).val().length != 3) {
$.validationEngine.isError = true;
promptText += $.validationEngine.settings.allrules["creditCardSecurity"].alertText + "
";
}
break;
}
}
}
function _length(caller, rules, position, rule) { // VALIDATE LENGTH
startLength = eval(rules[position + 1]);
endLength = eval(rules[position + 2]);
feildLength = $(caller).attr('value').length;
if (feildLength < startLength || feildLength > endLength) {
$.validationEngine.isError = true;
promptText += $.validationEngine.settings.allrules[rule].alertText + "
";
$("#errorText").show();
}
}
function _lmlength(caller, rules, position, lmrule) { // VALIDATE LENGTH
startLength = eval(rules[position + 1]);
endLength = eval(rules[position + 2]);
feildLength = $(caller).attr('value').length;
if ((feildLength < startLength || feildLength > endLength) && feildLength != 0) {
$.validationEngine.isError = true;
promptText += $.validationEngine.settings.allrules[lmrule].alertText + "
";
$("#errorText").show();
}
}
function _minCheckbox(caller, rules, position) { // VALIDATE CHECKBOX NUMBER
nbCheck = eval(rules[position + 1]);
groupname = $(caller).attr("name");
groupSize = $("input[name=" + groupname + "]:checked").size();
if (groupSize > nbCheck) {
$.validationEngine.isError = true;
promptText += $.validationEngine.settings.allrules["minCheckbox"].alertText + "
";
}
}
return ($.validationEngine.isError) ? $.validationEngine.isError : false;
},
closePrompt: function(caller, outside) { // CLOSE PROMPT WHEN ERROR CORRECTED
//$(caller).css('border', 'none');
$(caller).removeClass('error');
if (outside) {
$(caller).fadeTo("fast", 0, function() {
$(caller).remove();
});
return false;
}
if (!ajaxValidate) {
closingPrompt = $(caller).attr("id");
$("." + closingPrompt).fadeTo("fast", 0, function() {
$("." + closingPrompt).remove();
});
}
},
submitValidation: function(caller, settings) { // FORM SUBMIT VALIDATION LOOPING INLINE VALIDATION
var stopForm = false;
$.validationEngine.settings = settings
$.validationEngine.ajaxValid = true
$(caller).find(".formError").remove();
var toValidateSize = $(caller).find("[class^=validate]").size();
$(caller).find("[class^=validate]").each(function() {
callerId = $(this).attr("id")
if (!$("." + callerId).hasClass("ajaxed")) { // DO NOT UPDATE ALREADY AJAXED FIELDS (only happen is no normal errors, don't worry)
var validationPass = $.validationEngine.loadValidation(this, settings);
return (validationPass) ? stopForm = true : "";
}
});
ajaxErrorLength = $.validationEngine.ajaxValidArray.length // LOOK IF SOME AJAX IS NOT VALIDATE
for (x = 0; x < ajaxErrorLength; x++) {
if ($.validationEngine.ajaxValidArray[x][1] == false) {
$.validationEngine.ajaxValid = false
}
}
if (stopForm || !$.validationEngine.ajaxValid) { // GET IF THERE IS AN ERROR OR NOT FROM THIS VALIDATION FUNCTIONS
destination = $(".formError:not('.greenPopup'):first").offset().top;
$("html:not(:animated),body:not(:animated)").animate({ scrollTop: destination }, 1100);
return true;
} else {
return false
}
}
}
})(jQuery);