
/**
 This file is part of aprixo-CMS(R) by osite network GmbH
 Description:
 first function looks if regular expressions are supported
 if not you need the specific value "email" for the email-function chkemail !!!
 call function inside the form-tag like: onSubmit='return chkform("value1,value2,valueN")'
 if value contains regular expression "mail" the Email-function advchkemail is called
 define a standard error-message inside an hidden field like:
 	<input type="hidden" id="stdmsg" value="Your Message" />
 and an e-mail error-message like:
 	<input type="hidden" id="mailmsg" value="No valid Email!" />
**/

function regExTest(){
	var a = false;
	if (typeof(RegExp) == 'function'){
		var b = new RegExp('abc');
		if (b.test('abc') == true){
			a = true;
		}
	}
	return a;
}

function chkform(namestring){
	var reg = regExTest();
	var msg = document.getElementById("stdmsg").value;
	var values = namestring.split(",");
	for (var i = 0; i < values.length; i++){
		if (document.getElementById(values[i]).value == "") {
			alert(unescape(msg));
			document.getElementById(values[i]).focus();
			return false;
		}
		if (reg == true){
			var isMail = values[i].search(/mail/);
			if (isMail != -1){
				return advchkemail (values[i]);
			}
		}
		if (reg == false){
			if (values[i] == "email") return chkemail(values[i]);
		}
	}
	return true;
}

function chkformByName(namestring){
	var reg = regExTest();
	var radiocheck = "";
	var validmail = true;
	if (typeof(document.getElementsByName('gui_ctr_jsmsg')[0]) != 'undefined'){
		var msg = document.getElementsByName('gui_ctr_jsmsg')[0].value;
	} else var msg = 'Please fill in marked fields!';
	var values = namestring.split(",");
	for (var i = 0; i < values.length; i++){
		var element = document.getElementsByName(values[i])[0];
		if (element.type=="text" || element.type=="password" || element.type=="textarea") {
			if (element.value == "") {
				alert(unescape(msg));
				element.focus();
				element.style.border = "solid red 1px";
				return false;
			}
			if (reg == true){
				var isMail = values[i].search(/mail/);
				if (isMail != -1){
					validmail = advchkemailGUI(element.id);
				}
			}
			if (reg == false){
				if (values[i].value == "email") validmail = chkemailGUI(element.id);
			}
			if (validmail == false) {
				return false;
			}
		}
		if (element.type=="radio") {
			if (radiocheck.indexOf(element.name + " ") < 0) {
				radiocheck += element.name + " ";
				eval("var radiogroup = f." + element.name);
				var ok = false;
				for (var k=0; k<radiogroup.length; k++) {
					if (radiogroup[k].checked) {
						ok = true;
					}
				}
				if (!ok) {
					alert(unescape(msg));
					element.focus();
					return false;
				}
			}
		}
		if (element.type=="select-one" || element.type=="select-multiple") {
			if (element.selectedIndex == 0 || element.selectedIndex == "" ) {
				alert(unescape(msg));
				element.focus();
				element.style.border = "solid red 1px";
				return false;
			}
		}
		if (element.type=="checkbox") {
			if (element.checked == false) {
				alert(unescape(msg));
				element.focus();
				return false;
			}
		}
	}
	return true;
}

function chkemail(formvalue){

	var res = false;
	var msg = document.getElementById("mailmsg").value;
	var adress = document.getElementById(formvalue).value;

	res = (adress.search('@') >= 1 && adress.lastIndexOf('.') > adress.search('@') && adress.lastIndexOf('.') >= adress.length-5)

	if (res == false){
		alert(unescape(msg));
		document.getElementById(formvalue).focus();
		//document.getElementById(formvalue).style.border = "solid red 1px";
		return false;
	}
	else return true;
}

function advchkemail(formvalue){

	var res = false;
	var msg = document.getElementById("mailmsg").value;
	var adress = document.getElementById(formvalue).value;

	reg = new RegExp('^([a-zA-Z0-9\\-\\.\\_]+)' + '(\\@)([a-zA-Z0-9\\-\\.]+)' + '(\\.)([a-zA-Z]{2,4})$');
	res = (reg.test(adress));

	if (res == false){
		alert(unescape(msg));
		document.getElementById(formvalue).focus();
		return false;
	}
	else return true;
}

function chkemailGUI(elementid){

	var res = false;
	if (typeof(document.getElementsByName('gui_ctr_jsmailmsg')[0]) != 'undefined'){
		var msg = document.getElementsByName('gui_ctr_jsmailmsg')[0].value;
	} else var msg = 'Please enter a valid e-mail address!';
	var adress = document.getElementById(elementid).value;

	res = (adress.search('@') >= 1 && adress.lastIndexOf('.') > adress.search('@') && adress.lastIndexOf('.') >= adress.length-5)

	if (res == false){
		alert(unescape(msg));
		document.getElementById(elementid).focus();
		document.getElementById(elementid).style.border = "solid red 1px";
		return false;
	}
	else return true;
}

function advchkemailGUI(elementid){

	var res = false;
	if (typeof(document.getElementsByName('gui_ctr_jsmailmsg')[0]) != 'undefined'){
		var msg = document.getElementsByName('gui_ctr_jsmailmsg')[0].value;
	} else var msg = 'Please enter a valid e-mail address!';
	var adress = document.getElementById(elementid).value;

	reg = new RegExp('^([a-zA-Z0-9\\-\\.\\_]+)' + '(\\@)([a-zA-Z0-9\\-\\.]+)' + '(\\.)([a-zA-Z]{2,4})$');
	res = (reg.test(adress));

	if (res == false){
		alert(unescape(msg));
		document.getElementById(elementid).focus();
		document.getElementById(elementid).style.border = "solid red 1px";
		return false;
	}
	else return true;
}

function chkinteger(formvalue){
	
	var res = false;
	if (typeof(document.getElementsByName('gui_ctr_intmsg')[0]) != 'undefined'){
		var msg = document.getElementsByName('gui_ctr_intmsg')[0].value;
	} else var msg = 'Bitte geben Sie eine g%FCltige Zahl ein!';
	var value = document.getElementById(formvalue).value;

	if (value != null && value != ''){
		if (isNaN(parseInt(value))){
			alert(unescape(msg));
			document.getElementById(formvalue).focus();
			//document.getElementById(formvalue).style.border = "solid red 1px";
			return false;
		}
	}
	return true;

}