////
// Tomasz Chodu�
// 9 lutego 2006
// Forms validation script
////

var valid;
var validationForm;
var submitButton;
var waitValue;

function prepareValidation(vForm, sButton, wValue) {

	validationForm = vForm;
	submitButton = sButton;
	waitValue = wValue;
	valid = true;

}

function checkElement(field, check, message, field2, field3) {

	if(valid) {

		string = validationForm.elements[field].value;

		if(field3 && field2) {

			from = field2;
			to = field3;

		} else {

			if(field2) {
				string2 = validationForm.elements[field2].value;
			}

		}

		switch(check) {

			case 'notempty':
			if(isEmpty(string)) {
				valid = false;
			}
			break;

			case 'checked':
			if(!validationForm.elements[field].checked) {
				valid = false;
			}
			break;

			case 'alphadigits':
			if(!isOnlyAlphaAndDigits(string)) {
				valid = false;
			}
			break;

			case 'alpha':
			if(!isOnlyAlpha(string)) {
				valid = false;
			}
			break;

			case 'length':
			if(!isValidLength(string, from, to)) {
				valid = false;
			}
			break;

			case 'email':
			if(!isEmail(string)) {
				valid = false;
			}
			break;

			case 'numeric':
			if(!isNumeric(string)) {
				valid = false;
			}
			break;

			case 'integer':
			if(!isPositiveInteger(string)) {
				valid = false;
			}
			break;

			case 'integer1':
			if(!isPositiveInteger1(string)) {
				valid = false;
			}
			break;

			case 'equal':
			if(!isEqual(string, string2)) {
				valid = false;
			}
			break;

			case 'notequal':
			if(isEqual(string, field2)) {
				valid = false;
			} else {
				return true;
			}
			break;

			case 'daterange':
			if(!isValidDateRange(string, string2)) {
				valid = false;
			}
			break;

			default:
			valid = false;

		}

		if(!valid) {
			alert(message);
			validationForm.elements[field].focus();
		}

	}

}

function isValid() {

	if(valid) {

		validationForm.elements[submitButton].disabled = 'disabled';
		validationForm.elements[submitButton].style.color = '#929292';
		validationForm.elements[submitButton].value = waitValue;

	}

	return valid;

}

//validate functions

function isEmpty(string) {

	if (string.length == 0) {
		return true;
	} else {
		return false;
	}

}

function isOnlyAlphaAndDigits(string) {

	WyrazenieAlphaDigits=/^[0-9a-zA-Z]+$/;

	if (!WyrazenieAlphaDigits.test(string) && string.length != 0) {
		return false;
	} else {
		return true;
	}

}

function isOnlyAlpha(string) {

	WyrazenieAlpha=/^[a-zA-Z]+$/;

	if (!WyrazenieAlpha.test(string) && string.length != 0) {
		return false;
	} else {
		return true;
	}

}

function isValidLength(string, from, to) {

	if(from == -1 && to == -1) {
		return true;
	} else if (from == -1 && to != -1) {
		if (string.length <= to) {
			return true;
		} else {
			return false;
		}
	} else if (from != -1 && to == -1) {
		if (string.length >= from) {
			return true;
		} else {
			return false;
		}
	} else {
		if (string.length >= from && string.length <= to) {
			return true;
		} else {
			return false;
		}
	}

}

function isEmail(string) {

	WyrazenieEmail=/^[0-9a-z._-]+(@|\(at\))+[0-9a-z._-]+\.[a-z]{2,4}$/i;

	if(!WyrazenieEmail.test(string) && string.length != 0) {
		return false;
	} else {
		return true;
	}

}

function isNumeric(string) {

	if(isNaN(string) && string.length != 0) {
		return false;
	} else {
		return true;
	}

}

function isPositiveInteger(string) {

	WyrazenieInteger=/^[0-9]+$/;

	if (!WyrazenieInteger.test(string) && string.length != 0) {
		return false;
	} else {
		return true;
	}

}

function isPositiveInteger1(string) {

	WyrazenieInteger=/^[1-9][0-9]*$/;

	if (!WyrazenieInteger.test(string) && string.length != 0) {
		return false;
	} else {
		return true;
	}

}

function isEqual(string1, string2) {

	if(string1 == string2) {
		return true;
	} else {
		return false;
	}

}

function isValidDateRange(string1, string2) {

	py = string1.substr(0,4);
	pm = string1.substr(5,2);
	pd = string1.substr(8,2);

	ky = string2.substr(0,4);
	km = string2.substr(5,2);
	kd = string2.substr(8,2);

	datap = new Date(py,pm,pd);
	datak = new Date(ky,km,kd);

	begin = datap.getTime();
	end = datak.getTime();

	if (begin > end) {
		return false;
	} else {
		return true;
	}

}

//confirming delete

function confirmDelete(delUrl) {
	if (confirm("Czy na pewno chcesz usunąć Nie będzie można przywrócić usuniętych danych!")) {
		document.location = delUrl;
	}
}
function confirmDisable(delUrl) {
	if (confirm("Czy na pewno chcesz zablokować?")) {
		document.location = delUrl;
	}
}
