var muteAlertOnChange = false;
function loadSyncroContent(href, objId, data, callback) {
return loadSyncroContentDataType(href, objId, data, 'html',callback);
}
function loadSyncroContentDataType(href, objId, data, dataType,callback) {
var result = "";
$.ajax({
async: false,
data: data,
url: href,
dataType: dataType,
cache: false,
success: function (html) {
if(dataType=='html')
html = ('
'+html+'
');
if (objId) {
$('#' + objId).html(html);
}
if (typeof callback == "function")
callback(html);
result = html;
},
error: function (err) {
$('#' + objId).html(err.statusText);
}
});
return result;
}
jQuery.fn.isFullfilled = function () {
var canSubmit = true;
var firstErrorElement = "";
$(this).clearAlert();
this.each(function () {
// clearAlertEle($(this));
var theElement = $(this);
var fieldId = theElement.attr('id');
var fieldlabel = $('#InputElement_' + fieldId);
var fieldgrp = $('#elGrp_' + fieldId);
var isTiny = false;
var isSmartG = false;
var isTinyFilled = false;
fieldlabel.removeClass("state-error");
fieldgrp.removeClass("has-error");
// is a tinymce!
if (theElement.is('textarea') && theElement.attr("aria-hidden") == "true") {
isTiny = true;
var tid = theElement.attr("id");
var iframe = $("#" + tid + "_ifr");
if (iframe && tinyMCE && tinyMCE.get(tid)) {
var val = tinyMCE.get(tid).getContent();
if (val)
isTinyFilled = true;
iframe.css('border', '1px solid green');
}
}
var isNotUnfilledTiny = !(isTiny && isTinyFilled);
if (!isTiny && theElement.attr("type") == "hidden" &&
$("#" + theElement.attr("_fieldgroup")) != undefined) {
theElement = $("#" + $("#" + theElement.attr("_fieldgroup") + "_FIELDGROUP").val());
isSmartG = true;
}
if (isNotUnfilledTiny && (theElement.val().trim().length == 0 || theElement.attr("invalid") == "true")) {
if (!isTiny && theElement.attr("type") == "hidden" &&
isSmartG) {
theElement = $("#" + theElement.attr("_fieldgroup") + "_txt");
// theElement = $("#" + theElement.attr("_fieldgroup") );
fieldlabel = $("#InputElement_" + + theElement.attr("_fieldgroup") + "_txt");
}
fieldlabel.addClass("state-error");
fieldgrp.addClass("has-error");
canSubmit = false;
if (firstErrorElement == "")
firstErrorElement = theElement;
if (!canSubmit)
createEltErrorMessage(theElement, 'questo campo non può essere vuoto');
if (isTiny && !isTinyFilled) {
$("#" + theElement.attr("id") + "_ifr").css('border', '');
}
if (!canSubmit) {
// get the tabdiv
var theTabDiv = firstErrorElement.parents("[isTabSetDiv='true']");
if (theTabDiv.length > 0)
hideTabsAndShow(theTabDiv.attr("thisTabId"), theTabDiv.attr("thisTabsetId"));
// fake highlight element
if (isTiny && !isTinyFilled) {
theElement = $("#" + theElement.attr("id") + "_ifr");
theElement.css('border', '1px solid red');
}
} else if (isTiny && !isTinyFilled) {
$("#" + theElement.attr("id") + "_ifr").css('border', '1px solid green');
}
} else {
createEltSuccessMessage(theElement);
}
});
if (!canSubmit && firstErrorElement.attr("type") != "hidden") {
// $(this).createErrorMessage(i18n.ERROR_ON_FIELD, i18n.INVALID_DATA);
$('html, body').animate({
scrollTop: firstErrorElement.offset().top
}, 'fast');
firstErrorElement.focus();
}
return canSubmit;
// return false;
};
//Form
function canSubmitForm(idForm) {
return $("#" + idForm).find(".validated").isValid() && $("#" + idForm).find("input[required=true],textarea[required=true],select[required=true]").isFullfilled();
}
jQuery.fn.createErrorMessage = function (errorCode, message) {
this.each(function () {
createEltErrorMessage($(this), message);
});
return this;
};
function createEltErrorMessage(ele, errorMessage) {
var el = $(ele);
el.attr("invalid", "true");
$('#InputElement_' + el.attr('id')).removeClass("state-success");
$('#elGrp_' + el.attr('id')).removeClass("has-success");
$('#InputElement_' + el.attr('id')).addClass("state-error");
$('#elGrp_' + el.attr('id')).addClass("has-error");
if (el.attr("type") != "hidden") {
if ($("#" + el.attr("id") + "-error").size() <= 0) {
var err = " " + errorMessage;
err += "\n";
var er = $(err).attr("tooltip", errorMessage);
$('#InputElement_' + el.attr('id')).after(er);
}
}
}
function createEltSuccessMessage(ele) {
var el = $(ele);
el.remove("invalid");
$('#InputElement_' + el.attr('id')).removeClass("state-error");
$('#elGrp_' + el.attr('id')).removeClass("has-error");
$('#InputElement_' + el.attr('id')).addClass("state-success");
$('#elGrp_' + el.attr('id')).addClass("has-success");
}
jQuery.fn.isValid = function () {
var valid = true;
this.each(function () {
valid = valid && validateFieldElt($(this));
});
return valid;
};
jQuery.fn.clearAlert = function () {
this.each(function () {
clearAlertEle($(this));
});
return this;
};
function clearAlertEle(elt) {
var el = $(elt);
el.removeAttr("invalid");
$('#InputElement_' + el.attr('id')).removeClass("state-error");
$('#elGrp_' + el.attr('id')).removeClass("has-error");
$('#InputElement_' + el.attr('id')).removeClass("state-success");
$('#elGrp_' + el.attr('id')).removeClass("has-success");
$("#" + el.attr("id") + "-error").remove();
}
function validateField(e) {
return validateFieldElt($(this));
}
function validateFieldElt(elt) {
var rett = true;
clearAlertEle(elt);
// check serverside only if not empty
var value = $(elt).val();
if (value) {
var type = $(elt).attr('entryType').toUpperCase();
if (type == "INTEGER")
rett = isValidInteger(value);
else if (type == "DOUBLE")
rett = isValidDouble(value);
else if (type == "PERCENTILE")
rett = isValidDouble(value);
else if (type == "URL")
rett = isValidURL(value);
else if (type == "EMAIL")
rett = isValidEmail(value);
else if (type == "DURATIONMILLIS")
rett = isValidDurationMillis(value);
else if (type == "DURATIONDAYS")
rett = isValidDurationDays(value);
else if (type == "DATE")
rett = Date.isValid(value);
else if (type == "TIME")
rett = isValidTime(value);
else if (type == "CURRENCY")
rett = isValidCurrency(value);
if (!rett) {
createEltErrorMessage($(elt), 'INVALID_DATA');
} else {
createEltSuccessMessage($(elt));
}
}
return rett;
}
// verify before unload BEGIN ----------------------------------------------------------------------------
function alertOnUnload() {
if (!muteAlertOnChange) {
for (var i = 0; i < document.forms.length; i++) {
var currForm = document.forms[i];
if ('true' == '' + currForm.getAttribute('alertOnChange')) {
for (var j = 0; j < currForm.elements.length; j++) {
var anInput = currForm.elements[j];
if (!('true' == '' + anInput.getAttribute('excludeFromAlert')) && "" + anInput.getAttribute('oldValue') == "1") {
var oldValue = (__oldValues__[anInput.id] + "").trim();
if ($(anInput).attr("maleficoTiny")) {
if (tinymce.EditorManager.get($(anInput).attr("id")).isDirty()) {
//alert("isDirty:" + tinymce.EditorManager.get($(anInput).attr("id")).isDirty());
if (isExplorer)
event.returnValue = i18n.FORM_IS_CHANGED + " \"" + anInput.name + "\"";
else
return i18n.FORM_IS_CHANGED + " \"" + anInput.name + "\"";
}
} else if (!$(anInput).val().isNull &&(''+$(anInput).val())!='null' && $(anInput).val().trim() != oldValue) {
if (isExplorer)
event.returnValue = i18n.FORM_IS_CHANGED + " \"" + anInput.name + "\"";
else
return i18n.FORM_IS_CHANGED + " \"" + anInput.name + "\"";
}
}
}
}
}
}
}
// verify before unload END ----------------------------------------------------------------------------
$('.validated').livequery('blur', validateField);
$(document).ready(function () {
window.onbeforeunload = alertOnUnload;
});