// Contains Validation routines for fields
function ValidateString(element, maxLength, allowsNull, msg) {
	if (element.value.length > maxLength) {
		alert(msg);
		element.select();
		return false;
	}
	if (!allowsNull) {
		if (element.value.length == 0) {
			alert(msg);
			element.focus();
			return false;
		}
	}
	return true;
}
function ValidateInteger(elem, msg) {
		var res = parseInt(elem.value);
		
		if(isNaN(res)) { 
			elem.value = ''; 
			if (msg.length>1) alert(msg); 
			elem.focus(); return false;
			
		} else { elem.value = res; return true; }
}
function ValidatePassword(elem1, elem2, msg) {
		if (elem1.value == elem2.value) {
			return true;
		} else {
			alert('Οι κωδικοί πρέπει να συμφωνούν!');
			//elem1.value = '';
			elem2.value = '';
			elem1.focus();
			return false;
		}
}
function emailCheck (emailElem) {
	var emailPat=/^(.+)@(.+)$/;
	var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
	var validChars="\[^\\s" + specialChars + "\]";
	var quotedUser="(\"[^\"]*\")";
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
	var atom=validChars + '+';
	var word="(" + atom + "|" + quotedUser + ")";
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
	var matchArray=emailElem.value.match(emailPat);
	if (matchArray==null) {
		alert("Παρακαλώ διορθώστε το email σας!");
		emailElem.focus();
		return false;
	}	
	var user=matchArray[1];
	var domain=matchArray[2];	
	for (i=0; i<user.length; i++) {
		if (user.charCodeAt(i)>127) {
			alert("Παρακαλώ διορθώστε το email σας!");
			emailElem.focus();
			return false;
   		}
	}
	for (i=0; i<domain.length; i++) {
		if (domain.charCodeAt(i)>127) {
			alert("Παρακαλώ διορθώστε το email σας!");
			emailElem.focus();
			return false;
		}
	}	
	if (user.match(userPat)==null) {
		alert("Παρακαλώ διορθώστε το email σας!");
		emailElem.focus();
		return false;
	}	
	var IPArray=domain.match(ipDomainPat);	
	if (IPArray!=null) {
		for (var i=1;i<=4;i++) {
			if (IPArray[i]>255) {
				alert("Παρακαλώ διορθώστε το email σας!");
				emailElem.focus();
				return false;
   			}
		}
		return true;
	}	
	var atomPat=new RegExp("^" + atom + "$");
	var domArr=domain.split(".");
	var len=domArr.length;
	for (i=0;i<len;i++) {
		if (domArr[i].search(atomPat)==-1) {
			alert("Παρακαλώ διορθώστε το email σας");
			emailElem.focus();
			return false;
   		}
	}	
	if (len<2) {
		alert("Παρακαλώ διορθώστε το email σας!");
		emailElem.focus();
		return false;
	}	
	return true;
}
function isDate(sDate) {
	var re = /^\d{1,2}\/\d{1,2}\/\d{4}$/
	if (re.test(sDate)) {
		var dArr = sDate.split("/"); var d = new Date(sDate); return d.getMonth() + 1 == dArr[0] && d.getDate() == dArr[1] && d.getFullYear() == dArr[2];
	} else {return false;}
}

