	
function checkEmail(e) {
	ok = '1234567890qwertyuiop[]asdfghjklzxcvbnm.@-_QWERTYUIOPASDFGHJKLZXCVBNM';

	for (i = 0; i < e.length; i++){
		if(ok.indexOf(e.charAt(i)) < 0)
			return (false);
	} 

	if (document.images) {
		re = /(@.*@)|(\.\.)|(^\.)|(^@)|(@$)|(\.$)|(@\.)/;
		re_two = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/;
		if (!e.match(re) && e.match(re_two))
			return (-1);
	}
}


function verifyEmail(form, field, msg)
{
	if (!checkEmail(eval('form.' + field + '.value'))) {
		alert((msg && msg != '' ? msg : 'Va rugam sa introduceti o adresa de mail valida!'));
		eval('form.' + field + '.focus()');
		document.getElementById(field).style.border = '1px solid #f00';
		return false;
	}
	else
		document.getElementById(field).style.border = '1px solid #999';
	
	return true;
}


function verifyFieldSelect(form, field, fieldName, msg)
{
	var sel = eval('form.' + field + '.selectedIndex');
	
	if (sel == -1 || eval('form.' + field + '.options[form.' + field + '.selectedIndex].value') == 0) {
		alert((msg && msg != '' ? msg : 'Va rugam sa selectati ' + fieldName + '!'));
		eval('form.' + field + '.focus()');
		document.getElementById(field).style.border = '1px solid #f00';
		return false;
	}
	else
		document.getElementById(field).style.border = '1px solid #999';
		
	return true;
}


function verifyFieldText(form, field, fieldName, maxWordLen, msg, msg1)
{
	var textField = eval('form.' + field + '.value');
	
	if (textField == '') {
		alert((msg && msg != '' ? msg : 'Va rugam sa completati rubrica ' + fieldName + '!'));
		eval('form.' + field + '.focus()');
		document.getElementById(field).style.border = '1px solid #f00';
		return false;
	}
	else
		document.getElementById(field).style.border = '1px solid #999';
	
	if (maxWordLen == undefined)
		maxWordLen = 500;
	
	var words = textField.split(' ');
	var index = 0;
	var word = '';
	
	for (var i = 0; i < words.length; i++) {
		if (words[i].length > maxWordLen) {
			alert((msg1 ? msg1 : 'Ati introdus cuvinte mai lungi de ' + maxWordLen + ' caractere (' + words[i] + '). Va rugam modificati.'));
			eval('form.' + field + '.focus()');
			document.getElementById(field).style.border = '1px solid #f00';
			return false;
		}
		else
			document.getElementById(field).style.border = '1px solid #999';
	}
	
	return true;
}


function verifyFieldCheckbox(form, field, fieldName, msg)
{
	var cField = eval('form.' + field + '.checked');
	
	if (!cField) {
		alert((msg && msg != '' ? msg : 'Pentru a continua, va rugam sa ' + fieldName + '!'));
		eval('form.' + field + '.focus()');
		document.getElementById(field).style.border = '1px solid #f00';
		return false;
	}
	else
		document.getElementById(field).style.border = '1px solid #999';
	
	return true;
}



function verifyFieldRadio(form, field, fieldName, msg)
{
	var cField = eval('form.' + field);
	
	if (cField) {
		var radioLength = cField.length;
		if (radioLength == undefined) {
			if (cField.checked)
				return true;
		}
		else
			for (var i = 0; i < radioLength; i++) {
				if (cField[i].checked)
					return true;
			}
	}
	
	alert((msg && msg != '' ? msg : 'Pentru a continua, va rugam sa ' + fieldName + '!'));
	
	return false;
}


function verifyFieldDateText(form, field, fieldName, msg)
{
	var dateField = document.getElementById(field);
	
	/*if (getBrowser() == 'ie') {
		var mydate = new Date(parseInt(dateField.value));
		alert(mydate);
		alert(mydate.getFullYear());
		var dateFieldValue = mydate.getFullYear() + '-' + mydate.getMonth() +  '-' + mydate.getDay();
	}
	else*/
	var dateFieldValue = dateField.value;
	
	if (dateFieldValue == '') { 
		alert((msg && msg != '' ? msg : 'Va rugam sa completati rubrica ' + fieldName + '!'));
		eval('form.' + field + '.focus()');
		dateField.style.border = '1px solid #f00';
		return false;
	}
	else
		dateField.style.border = '1px solid #999';
	
	var checkstr = "0123456789";
	var DateField = dateField;
	var Datevalue = '';
	var DateTemp = "";
	var seperator = ".";
	var day;
	var month;
	var year;
	var leap = 0;
	var err = 0;
	var i;
	
	err = 0;
	DateValue = dateFieldValue;
	
	/* Delete all chars except 0..9 */
	for (i = 0; i < DateValue.length; i++)
		if (checkstr.indexOf(DateValue.substr(i,1)) >= 0)
			DateTemp = DateTemp + DateValue.substr(i,1);

	DateValue = DateTemp;
	/* Always change date to 8 digits - string*/
	/* if year is entered as 2-digit / always assume 20xx */
	if (DateValue.length == 6)
		DateValue = DateValue.substr(0,4) + '20' + DateValue.substr(4,2);
	if (DateValue.length != 8)
		err = 19;
	
	/* year is wrong if year = 0000 */
	year = DateValue.substr(4,4);
	if (year == 0)
		err = 20;
	
	/* Validation of month*/
	month = DateValue.substr(2,2);
	if ((month < 1) || (month > 12))
		err = 21;
	
	/* Validation of day*/
	day = DateValue.substr(0,2);
	if (day < 1)
		err = 22;

	/* Validation leap-year / february / day */
	if ((year % 4 == 0) || (year % 100 == 0) || (year % 400 == 0))
		leap = 1;
	
	if ((month == 2) && (leap == 1) && (day > 29))
		err = 23;
	
	if ((month == 2) && (leap != 1) && (day > 28))
		err = 24;
	
	/* Validation of other months */
	if ((day > 31) && ((month == "01") || (month == "03") || (month == "05") || (month == "07") || (month == "08") || (month == "10") || (month == "12")))
		err = 25;
	
	if ((day > 30) && ((month == "04") || (month == "06") || (month == "09") || (month == "11")))
		err = 26;
	
	/* if 00 ist entered, no error, deleting the entry */
	/*if ((day == 0) && (month == 0) && (year == 00)) {
		err = 0; day = ""; month = ""; year = ""; seperator = "";
	}*/
	/* if no error, write the completed date to Input-Field (e.g. 13.12.2001) */
	if (err == 0) {
		//DateField.value = day + seperator + month + seperator + year;
		document.getElementById(field).style.border = '1px solid #999';
	}
	else { /* Error-message if err != 0 */
		alert((msg && msg != '' ? msg : 'Va rugam sa introduceti o data corecta la rubrica ' + fieldName + ' (' + err + ')!'));
		eval('form.' + field + '.focus()');
		document.getElementById(field).style.border = '1px solid #f00';
		return false;
	}
	
	return true;
}


function daysInFebruary (year){
    return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}


function DaysArray(n) {
	for (var i = 1; i <= n; i++) {
		this[i] = 31;
		if (i==4 || i==6 || i==9 || i==11)
			this[i] = 30;
		if (i==2)
			this[i] = 29;
	} 
	
	return this;
}


function verifyFieldDate(form, field, fieldName, msg)
{
	var currentDate = new Date();
	
	var myDay = eval('form.' + field + '_day.options[form.' + field + '_day.selectedIndex].value');
	var myMonth = eval('form.' + field + '_month.options[form.' + field + '_month.selectedIndex].value');
	var myYear = eval('form.' + field + '_year.options[form.' + field + '_year.selectedIndex].value');
	var myDate = new Date(myYear, myMonth, myDay, 23, 59, 59, 999);
	
	var daysInMonth = DaysArray(12);
	
	if ((myMonth == 2 && myDay > daysInFebruary(myYear)) || myDay > daysInMonth[myMonth]) {
		//alert(('Va rugam sa specificati o data corecta!');
		alert((msg && msg != '' ? msg : 'Va rugam sa specificati o data corecta la rubrica ' + fieldName + '!'));
		return false;
	}
	
	return true;
}



function verifyFieldFile(form,field, fieldName, maxWordLen, msg)
{
	var textField = eval('form.' + field + '.value');
	if (textField == '') {
		alert((msg && msg != '' ? msg : 'Va rugam sa completati rubrica ' + fieldName + '!'));
		eval('form.' + field + '.focus()');
		document.getElementById(field).style.border = '1px solid #f00';
		return false;
	}
	else
		document.getElementById(field).style.border = '1px solid #999';
		
	return true;
}


function isInteger(s)
{   
	var i;
	for (i = 0; i < s.length; i++) {   
		// Check that current character is number.
		var c = s.charAt(i);
		if (((c < "0") || (c > "9"))) return false;
	}
	
	// All characters are numbers.
	return true;
}


function stripCharsInBag(s, bag)
{   
	var i;
	var returnString = "";
	// Search through string's characters one by one.
	// If character is not in bag, append to returnString.
	for (i = 0; i < s.length; i++) {   
		// Check that current character isn't whitespace.
		var c = s.charAt(i);
		if (bag.indexOf(c) == -1) returnString += c;
	}
	
	return returnString;
}


function checkInternationalPhone(strPhone)
{
	// Declaring required variables
	var digits = "0123456789";
	// non-digit characters which are allowed in phone numbers
	var phoneNumberDelimiters = "()- ";
	// characters which are allowed in international phone numbers
	// (a leading + is OK)
	var validWorldPhoneChars = phoneNumberDelimiters + "+";
	// Minimum no of digits in an international phone no.
	var minDigitsInIPhoneNumber = 6;
	
	s = stripCharsInBag(strPhone, validWorldPhoneChars);
	return (isInteger(s) && s.length >= minDigitsInIPhoneNumber);
}


function verifyFieldPhone(form,field, fieldName, maxWordLen, msg)
{
	var textField = eval('form.' + field + '.value');
	if (textField == '') {
		alert((msg && msg != '' ? msg : 'Va rugam sa completati rubrica ' + fieldName + '!'));
		eval('form.' + field + '.focus()');
		document.getElementById(field).style.border = '1px solid #f00';
		return false;
	}
	else
		document.getElementById(field).style.border = '1px solid #999';
	
	/**
	 * DHTML phone number validation script. Courtesy of SmartWebby.com (http://www.smartwebby.com/dhtml/)
	 */
	
	// Declaring required variables
	var digits = "0123456789";
	// non-digit characters which are allowed in phone numbers
	var phoneNumberDelimiters = "()- ";
	// characters which are allowed in international phone numbers
	// (a leading + is OK)
	var validWorldPhoneChars = phoneNumberDelimiters + "+";
	// Minimum no of digits in an international phone no.
	var minDigitsInIPhoneNumber = 6;


	if ((textField==null) || (textField == "")) {
		alert((msg && msg != '' ? msg : 'Va rugam sa introduceti un numar de telefon valid!'));
		eval('form.' + field + '.focus()');
		document.getElementById(field).style.border = '1px solid #f00';
		return false;
	}
	else
	if (checkInternationalPhone(textField) == false) {
		alert((msg && msg != '' ? msg : 'Va rugam sa introduceti un numar de telefon valid (' + fieldName + ')!'));
		eval('form.' + field + '.focus()');
		document.getElementById(field).style.border = '1px solid #f00';
		return false;
	}
	else
		document.getElementById(field).style.border = '1px solid #999';
	
	return true;
}



function verifyFieldNumber(form,field, fieldName, maxWordLen, msg)
{
	var textField = eval('form.' + field + '.value');
	if (textField == '') {
		alert('Va rugam sa completati rubrica ' + fieldName + '!');
		eval('form.' + field + '.focus()');
		document.getElementById(field).style.border = '1px solid #f00';
		return false;
	}
	else
		document.getElementById(field).style.border = '1px solid #999';
	
	if (maxWordLen == undefined)
		maxWordLen = 12;
	
	if (textField.length > maxWordLen) {
		alert('Ati introdus cuvinte mai lungi de ' + maxWordLen + ' caractere in campul ' + fieldName + '.');
		eval('form.' + field + '.focus()');
		document.getElementById(field).style.border = '1px solid #f00';
		return false;
	}
	else {
	
		var validDelimiters = ".,";
		
		s = stripCharsInBag(textField, validDelimiters);
		
		if (!isInteger(s)) {
			alert((msg && msg != '' ? msg : 'Va rugam sa introduceti un numar valid (' + fieldName + ') !'));
			eval('form.' + field + '.focus()');
			document.getElementById(field).style.border = '1px solid #f00';
			return false;
		}
		else
			document.getElementById(field).style.border = '1px solid #999';
	}
	
	return true;
}



function verifyFieldPercent(form,field, fieldName, maxWordLen, msg)
{
	if (!verifyFieldNumber(form, field, fieldName, maxWordLen))
		return false;
	
	var textField = eval('form.' + field + '.value');
	var value = parseFloat(textField);
	
	if (value < 0 || value > 100) {
		alert((msg && msg != '' ? msg : 'Va rugam sa introduceti un procent intre 0 si 100 pentru ' + fieldName + '!'));
		eval('form.' + field + '.focus()');
		document.getElementById(field).style.border = '1px solid #f00';
		return false;
	}
	else
		document.getElementById(field).style.border = '1px solid #999';
	
	return true;
}


function verifyFieldsGeneral(form, fields)
{
	
	/******* MODEL *******
	var fields = new Array();
	
	fields[0] = new Array();
	fields[0]['name'] = 'venit';
	fields[0]['title'] ='venitul salarial net';
	fields[0]['type'] ='text'; 
	
	fields[1] = new Array();
	fields[1]['name'] = 'credit_type';
	fields[1]['title'] ='tipul de credit';
	fields[1]['type'] ='select'; 
	
	***********************/
	
	for (var i = 0; i < fields.length; i++) {
		//alert(fields[i]['name']);
		
		if (fields[i]['type'] == 'select')
			if (!verifyFieldSelect(form, fields[i]['name'], fields[i]['title']))
				return false;
		
		if (fields[i]['type'] == 'text' || fields[i]['type'] == 'string')
			if (!verifyFieldText(form, fields[i]['name'], fields[i]['title']))
				return false;
		
		if (fields[i]['type'] == 'email') {
			if (!verifyFieldText(form, fields[i]['name'], fields[i]['title']))
				return false;
				
			if (!verifyEmail(form, fields[i]['name'])) {
				return false;
			}
		}
		
		if (fields[i]['type'] == 'date')
			if (!verifyFieldDate(form, fields[i]['name'], fields[i]['title']))
				return false;
		
		if (fields[i]['type'] == 'file')
			if (!verifyFieldFile(form, fields[i]['name'], fields[i]['title']))
				return false;
		
		if (fields[i]['type'] == 'image')
			if (!verifyFieldFile(form, fields[i]['name'], fields[i]['title']))
				return false;
		
		if (fields[i]['type'] == 'number')
			if (!verifyFieldNumber(form, fields[i]['name'], fields[i]['title']))
				return false;
		
		if (fields[i]['type'] == 'percent')
			if (!verifyFieldPercent(form, fields[i]['name'], fields[i]['title']))
				return false;
		
		if (fields[i]['type'] == 'checkbox')
			if (!verifyFieldCheckbox(form, fields[i]['name'], fields[i]['title'], fields[i]['msg']))
				return false;
		
		
		if (fields[i]['type'] == 'radio')
			if (!verifyFieldRadio(form, fields[i]['name'], fields[i]['title'], fields[i]['msg']))
				return false;
		
		if (fields[i]['type'] == 'phone')
			if (!verifyFieldPhone(form,fields[i]['name'], fields[i]['title']))
				return false;
				
		//alert('end ' + fields[i]['name']);
	}
	
	return true;
}
