mirror of
https://github.com/WhatCD/Gazelle.git
synced 2024-12-13 10:56:26 +00:00
127 lines
2.8 KiB
JavaScript
127 lines
2.8 KiB
JavaScript
var elemStyles = Array();
|
|
var errorElems = Array();
|
|
|
|
function validEmail(str) {
|
|
if (str.match(/^[_a-z0-9-]+([.+][_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$/i)) {
|
|
return true;
|
|
} else {
|
|
return false;
|
|
}
|
|
}
|
|
|
|
function validLink(str) {
|
|
if (str.match(/^(https?):\/\/([a-z0-9\-\_]+\.)+([a-z]{1,5}[^\.])(\/[^<>]+)*$/i)) {
|
|
return true;
|
|
} else {
|
|
return false;
|
|
}
|
|
}
|
|
|
|
function isNumeric(str,usePeriod) {
|
|
matchStr = '/[^0-9';
|
|
if (usePeriod) {
|
|
matchStr += '\.';
|
|
}
|
|
matchStr = ']/';
|
|
|
|
if (str.match(matchStr)) {
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
function validDate(theDate) {
|
|
days = 0;
|
|
|
|
theDate = theDate.split("/");
|
|
month = theDate[0];
|
|
day = theDate[1];
|
|
year = theDate[2];
|
|
|
|
if (!isNumeric(month) || !isNumeric(day) || !isNumeric(year)) { return false; }
|
|
|
|
if (month == 1) { days = 31; }
|
|
else if (month == 2) {
|
|
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
|
|
days = 29;
|
|
} else {
|
|
days = 28;
|
|
}}
|
|
else if (month == 3) { days = 31; }
|
|
else if (month == 4) { days = 30; }
|
|
else if (month == 5) { days = 31; }
|
|
else if (month == 6) { days = 30; }
|
|
else if (month == 7) { days = 31; }
|
|
else if (month == 8) { days = 31; }
|
|
else if (month == 9) { days = 30; }
|
|
else if (month == 10) { days = 31; }
|
|
else if (month == 11) { days = 30; }
|
|
else if (month == 12) { days = 31; }
|
|
|
|
if (day > days || day == undefined || days == undefined || month == undefined || year == undefined || year.length < 4) {
|
|
return false;
|
|
} else {
|
|
return true;
|
|
}
|
|
}
|
|
|
|
function showError(fields,alertStr) {
|
|
var tField=Array();
|
|
var obj, el;
|
|
|
|
if (typeof(fields) == 'object') {
|
|
tField[0] = fields;
|
|
} else {
|
|
tField = fields.split(',');
|
|
}
|
|
for (s = 0; s <= tField.length - 1; s++) {
|
|
obj = $('#'+tField[s]);
|
|
if (obj) {
|
|
el = obj.raw();
|
|
obj.add_class("elem_error");
|
|
if (s == 0) {
|
|
el.focus();
|
|
try {
|
|
el.select();
|
|
} catch (error) {
|
|
}
|
|
}
|
|
var evtType = el.type == "select-one" ? "change" : "keypress";
|
|
obj.listen(evtType, clearElemError);
|
|
errorElems.push(tField[s]);
|
|
}
|
|
}
|
|
|
|
if (alertStr != "") {
|
|
alert(alertStr);
|
|
}
|
|
return false;
|
|
}
|
|
|
|
function clearErrors(theForm) {
|
|
elementList = document.forms[theForm].elements;
|
|
for (x = 0; x <= elementList.length - 1; x++) {
|
|
if (elementList[x].type != "submit" && elementList[x].type != "button") {
|
|
if (!elemStyles[elementList[x].id]) {
|
|
elemStyles[elementList[x].id] = elementList[x].className;
|
|
}
|
|
|
|
try {
|
|
elementList[x].className = elemStyles[elementList[x].id];
|
|
} catch (error) { }
|
|
}
|
|
}
|
|
}
|
|
|
|
function clearElemError(evt) {
|
|
var obj, el;
|
|
for (x = 0; x <= errorElems.length - 1; x++) {
|
|
obj = $('#'+errorElems[x]);
|
|
el = obj.raw();
|
|
var evtType = el.type == "select-one" ? "change" : "keypress";
|
|
obj.unbind(evtType, clearElemError);
|
|
el.className = elemStyles[el.id];
|
|
}
|
|
errorElems = Array();
|
|
}
|