// ------------------------------------------------------------
// Check formulars

String.prototype.trim = function() { return this.replace(/(^\s*)|(\s*$)/g, ""); }

function checkEMail(string) 
{
	if (string.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1)
		return true;
	else
		return false;
}

function checkForm(formObject, formName, color){
	var ac    = -1;
	var error = '';
	var formField, textField, fieldObject;
	
	while(need[formName][++ac]){
		formField = need[formName][ac];
		textField = text[formName][ac];
		if (formField.charAt(0) == '@') { // check e-mail
			
			formObject.elements[formField.substring(1)].value = formObject.elements[formField.substring(1)].value.trim();
			if (! checkEMail(formObject.elements[formField.substring(1)].value)) {
				error += "\n - " + textField;
				fieldObject	= document.getElementById(formField.substring(1));
				if (fieldObject != null) fieldObject.style.backgroundColor = color;
			}
			
		} else if (formField.charAt(0) == '!') { // check select 
		
			formField = formField.substring(1);
			formObject.elements[formField].value = formObject.elements[formField].value.trim();
			
			if ( formObject.elements[formField+selectSuffix] != null ) {
				formObject.elements[formField+selectSuffix].value = formObject.elements[formField+selectSuffix].value.trim();
				if (formObject.elements[formField].value == '0' && formObject.elements[formField+selectSuffix].value == '') {
					error += "\n - " + textField;
					fieldObject	= document.getElementById(formField);
					if (fieldObject != null) fieldObject.style.backgroundColor = color;
				}
			} else {
				if (formObject.elements[formField].value == '0') {
					error += "\n - " + textField;
					fieldObject	= document.getElementById(formField);
					if (fieldObject != null) fieldObject.style.backgroundColor = color;
				}
			}
			
        } else { // default: text fiels

			formObject.elements[formField].value = formObject.elements[formField].value.trim();
			if (formObject.elements[formField].value == '') {
				error += "\n - " + textField;
				fieldObject	= document.getElementById(formField);
				if (fieldObject != null) fieldObject.style.backgroundColor = color;
			}
			
        }
    }
	
    if(error){
        alert(error);
        return false;
    } else 
		return true;
}

function checkFormColor(frmObject, frmName, colorValid, colorInvalid)
{
	prepareForm(frmName, colorValid);
	return checkForm(frmObject, frmName, colorInvalid);
}

function prepareForm(formName, color) {
	var ac    = -1;
	var formField, fieldObject;
	
	while(need[formName][++ac]) {
		formField = need[formName][ac];
		if (formField.charAt(0) == '@' || formField.charAt(0) == '!') {
			formField = formField.substring(1);
			fieldObject	= document.getElementById(formField+selectSuffix);
			if (fieldObject != null) fieldObject.style.backgroundColor = color;
		}
		fieldObject	= document.getElementById(formField);
		if (fieldObject != null) fieldObject.style.backgroundColor = color;
    }
	
	return true;
}

function chkForm(frmObject, frmName, colorValid, colorInvalid)
{
	prepareForm(frmName, colorValid);
	return checkForm(frmObject, frmName, colorInvalid);
}

function checkAllFields(frm)
{
	var error = '';
	for (i=0; i<frm.length; i++)
		if (frm.elements[i].value == '') error += "line " + i + "\n";

	if (error != '') {
		alert(info['all_fields']);
		return false;
	} else {
		return true;
	}
		
}

function checkAllCheckbox(frm, status)
{
	var i;
	
	for(i=0; i < frm.elements.length; i++)
		if (frm.elements[i].type == 'checkbox') frm.elements[i].checked = status;
}
