////////////////////////////////////////////////////////////////////////////////
// Javascript client input validation
////////////////////////////////////////////////////////////////////////////////
// checks all fields, creates error messages and outputs it into:
// - alert-box ( error_output_field_id ='JS_ALERT_WINDOW'
// - in html element with id =error_output_field_id
////////////////////////////////////////////////////////////////////////////////
// returns true if all valid / false if not (form get's not sent)
////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////
// Registration validation
////////////////////////////////////////////////////////////////////////////////
function validateRegistrationFormOnSubmit(theForm, error_output_field_id, error_field_bg_color, valid_field_bg_color, do_validate_flag) {

	// if flag is false do not proceed
	if(do_validate_flag==false) return true;

	var error_msg = "";
	var field_error = new Array( );

	current_field_name = 'organisation[organisation]'; 	current_error_message = '- Please provide your organisation<br />';
	if (getLength(theForm.elements[current_field_name])<1){ error_msg += current_error_message; setBgColor(theForm.elements[current_field_name],error_field_bg_color); field_error[current_field_name]=1; } else { if(field_error[current_field_name]!=1) setBgColor(theForm.elements[current_field_name],valid_field_bg_color);	}

	current_field_name = 'organisation[legal_entity_name]'; current_error_message = '- Please provide your legal entity name<br />';
	if (getLength(theForm.elements[current_field_name])<1){ error_msg += current_error_message; setBgColor(theForm.elements[current_field_name],error_field_bg_color); field_error[current_field_name]=1; } else { if(field_error[current_field_name]!=1) setBgColor(theForm.elements[current_field_name],valid_field_bg_color);	}

	current_field_name = 'organisation[contact_title]'; current_error_message = '- Please provide the contact\'s title.<br />';
	if (getLength(theForm.elements[current_field_name])<1){ error_msg += current_error_message; setBgColor(theForm.elements[current_field_name],error_field_bg_color); field_error[current_field_name]=1; } else { if(field_error[current_field_name]!=1) setBgColor(theForm.elements[current_field_name],valid_field_bg_color);	}

	current_field_name = 'organisation[contact_first_name]'; current_error_message = '- Please provide the contact\'s first name.<br />';
	if (getLength(theForm.elements[current_field_name])<1){ error_msg += current_error_message; setBgColor(theForm.elements[current_field_name],error_field_bg_color); field_error[current_field_name]=1; } else { if(field_error[current_field_name]!=1) setBgColor(theForm.elements[current_field_name],valid_field_bg_color);	}

	current_field_name = 'organisation[contact_last_name]'; current_error_message = '- Please provide the contact\'s last name.<br />';
	if (getLength(theForm.elements[current_field_name])<1){ error_msg += current_error_message; setBgColor(theForm.elements[current_field_name],error_field_bg_color); field_error[current_field_name]=1; } else { if(field_error[current_field_name]!=1) setBgColor(theForm.elements[current_field_name],valid_field_bg_color);	}

	current_field_name = 'organisation[contact_function]'; current_error_message = '- Please provide the contact\'s function.<br />';
	if (getLength(theForm.elements[current_field_name])<1){ error_msg += current_error_message; setBgColor(theForm.elements[current_field_name],error_field_bg_color); field_error[current_field_name]=1; } else { if(field_error[current_field_name]!=1) setBgColor(theForm.elements[current_field_name],valid_field_bg_color);	}

	current_field_name = 'organisation[contact_department]'; current_error_message = '- Please provide the contact\'s department.<br />';
	if (getLength(theForm.elements[current_field_name])<1){ error_msg += current_error_message; setBgColor(theForm.elements[current_field_name],error_field_bg_color); field_error[current_field_name]=1; } else { if(field_error[current_field_name]!=1) setBgColor(theForm.elements[current_field_name],valid_field_bg_color);	}

	current_field_name = 'organisation[contact_address]'; current_error_message = '- Please provide the ontact\'s adress.<br />';
	if (getLength(theForm.elements[current_field_name])<1){ error_msg += current_error_message; setBgColor(theForm.elements[current_field_name],error_field_bg_color); field_error[current_field_name]=1; } else { if(field_error[current_field_name]!=1) setBgColor(theForm.elements[current_field_name],valid_field_bg_color);	}

	current_field_name = 'organisation[contact_postcode]'; current_error_message = '- Please provide the contact\'s postcode.<br />';
	if (getLength(theForm.elements[current_field_name])<1){ error_msg += current_error_message; setBgColor(theForm.elements[current_field_name],error_field_bg_color); field_error[current_field_name]=1; } else { if(field_error[current_field_name]!=1) setBgColor(theForm.elements[current_field_name],valid_field_bg_color);	}

	current_field_name = 'organisation[contact_city]'; current_error_message = '- Please provide the contact\'s city.<br />';
	if (getLength(theForm.elements[current_field_name])<1){ error_msg += current_error_message; setBgColor(theForm.elements[current_field_name],error_field_bg_color); field_error[current_field_name]=1; } else { if(field_error[current_field_name]!=1) setBgColor(theForm.elements[current_field_name],valid_field_bg_color);	}

	current_field_name = 'organisation[contact_country]'; current_error_message = '- Please provide the contact\'s country.<br />';
	if (getLength(theForm.elements[current_field_name])<1){ error_msg += current_error_message; setBgColor(theForm.elements[current_field_name],error_field_bg_color); field_error[current_field_name]=1; } else { if(field_error[current_field_name]!=1) setBgColor(theForm.elements[current_field_name],valid_field_bg_color);	}

	current_field_name = 'organisation[contact_world_region]'; current_error_message = '- Please provide the world region.<br />';
	if (getLength(theForm.elements[current_field_name])<1){ error_msg += current_error_message; setBgColor(theForm.elements[current_field_name],error_field_bg_color); field_error[current_field_name]=1; } else { if(field_error[current_field_name]!=1) setBgColor(theForm.elements[current_field_name],valid_field_bg_color);	}

	current_field_name = 'organisation[contact_tel]'; current_error_message = '- Please provide the contact\'s phone number.<br />';
	if (getLength(theForm.elements[current_field_name])<1){ error_msg += current_error_message; setBgColor(theForm.elements[current_field_name],error_field_bg_color); field_error[current_field_name]=1; } else { if(field_error[current_field_name]!=1) setBgColor(theForm.elements[current_field_name],valid_field_bg_color);	}

	current_field_name = 'organisation[contact_email]'; current_error_message = '- Please provide a valid contact\'s email address.<br />';
	if (isInvalidEmail(theForm.elements[current_field_name])){ error_msg += current_error_message; setBgColor(theForm.elements[current_field_name],error_field_bg_color); field_error[current_field_name]=1;} else { if(field_error[current_field_name]!=1) setBgColor(theForm.elements[current_field_name],valid_field_bg_color);}

	current_field_name = 'organisation[contact_website]'; current_error_message = '- Please provide the contact\'s website.<br />';
	if (getLength(theForm.elements[current_field_name])<1){ error_msg += current_error_message; setBgColor(theForm.elements[current_field_name],error_field_bg_color); field_error[current_field_name]=1; } else { if(field_error[current_field_name]!=1) setBgColor(theForm.elements[current_field_name],valid_field_bg_color);	}

	current_field_name = 'organisation[username]'; current_error_message = '- Please provide a username.<br />';
	if (getLength(theForm.elements[current_field_name])<1){ error_msg += current_error_message; setBgColor(theForm.elements[current_field_name],error_field_bg_color); field_error[current_field_name]=1; } else { if(field_error[current_field_name]!=1) setBgColor(theForm.elements[current_field_name],valid_field_bg_color); }

	current_field_name = 'organisation[pwd]'; current_error_message = '- Password too short (min. 6 characters).<br />';
	if (getLength(theForm.elements[current_field_name])<1){ error_msg += current_error_message; setBgColor(theForm.elements[current_field_name],error_field_bg_color); field_error[current_field_name]=1; } else { if(field_error[current_field_name]!=1) setBgColor(theForm.elements[current_field_name],valid_field_bg_color); }

	current_field_name = 'organisation[community_type]'; current_error_message = '- Please provide the organisation\'s community type.<br />';
	if (getLength(theForm.elements[current_field_name])<1){ error_msg += current_error_message; setBgColor(theForm.elements[current_field_name],error_field_bg_color); field_error[current_field_name]=1; } else { if(field_error[current_field_name]!=1) setBgColor(theForm.elements[current_field_name],valid_field_bg_color);	}

//	current_field_name = 'organisation[inhabitants_year]'; current_error_message = '- Please provide the organisation\'s inhabitants number year.<br />';
//	if (getLength(theForm.elements[current_field_name])<1){ error_msg += current_error_message; setBgColor(theForm.elements[current_field_name],error_field_bg_color); field_error[current_field_name]=1; } else { if(field_error[current_field_name]!=1) setBgColor(theForm.elements[current_field_name],valid_field_bg_color);	}


//	current_field_name = 'organisation[cross_party_consensus]'; current_radio_area_id = 'cross_party_consensus_area'; current_error_message ='- Please indicate if there\'s a cross party consensus.<br />';
//	if (isNotSelectedRadio(theForm.elements[current_field_name])){ error_msg += current_error_message; setBgColor(document.getElementById(current_radio_area_id),error_field_bg_color); var radio_error=1;} else { if(radio_error!=1) setBgColor(document.getElementById(current_radio_area_id),valid_field_bg_color);}


	// pwd and pwd repetition are equal or not
	current_field_name_1 = 'organisation[pwd]';
	current_field_name_2 = 'organisation[pwd_repeat]';
	current_error_message = '- Passwords do not correspond.<br />';
	if (theForm.elements[current_field_name_1].value!=theForm.elements[current_field_name_2].value){
		error_msg += current_error_message;
		setBgColor(theForm.elements[current_field_name_1],error_field_bg_color);
		setBgColor(theForm.elements[current_field_name_2],error_field_bg_color);
		field_error[current_field_name_1]=1;
		field_error[current_field_name_2]=1;
	} else {
		if(field_error[current_field_name_1]!=1)  setBgColor(theForm.elements[current_field_name_1],valid_field_bg_color);
		if(field_error[current_field_name_2]!=1)  setBgColor(theForm.elements[current_field_name_2],valid_field_bg_color);
	}


	// output
	if (error_msg != "") {
		if(error_output_field_id=='JS_ALERT_WINDOW'){
			error_msg = error_msg.replace(/<br \/>/g,'\n');
			error_msg = 'Input Error! The following errors occured:'+"\n\n"+error_msg;
			alert(error_msg);
		}else{
			ef=document.getElementById(error_output_field_id);
			error_msg = '<p style="border:1px solid red; font-weight:bold; color:red; padding:5px; ">Input Error! The following errors occured:</p>'+error_msg;
			ef.innerHTML=error_msg;
		}
		return false;
	}
	return true;
}


//////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////
// below all currently implemented of form field validations
//////////////////////////////////////////////////////////////////////////////////////////
/*
	// textfield - length
	current_field_name = 'textfield'; current_error_message = 'Textfield too short<br />';
	if (getLength(theForm.elements[current_field_name])<3){ error_msg += current_error_message; setBgColor(theForm.elements[current_field_name],error_field_bg_color); field_error[current_field_name]=1; } else { if(field_error[current_field_name]!=1) setBgColor(theForm.elements[current_field_name],valid_field_bg_color);	}

	// textarea - length
	current_field_name = 'textare'; current_error_message = 'Textarea empty or too long (max.20 char)<br />';
	if ( (getLength(theForm.elements[current_field_name])>20) || (isEmpty(theForm.elements[current_field_name])) ){ error_msg += current_error_message; setBgColor(theForm.elements[current_field_name],error_field_bg_color); field_error[current_field_name]=1; } else { if(field_error[current_field_name]!=1) setBgColor(theForm.elements[current_field_name],valid_field_bg_color);	}

	// email-field - invalid/empty
	current_field_name = 'emailfield'; current_error_message = 'Invalid Email address<br />';
	if (isInvalidEmail(theForm.elements['form_mailer[email]'])){ error_msg += current_error_message; setBgColor(theForm.elements[current_field_name],error_field_bg_color); field_error[current_field_name]=1;} else { if(field_error[current_field_name]!=1) setBgColor(theForm.elements[current_field_name],valid_field_bg_color);}

	// radio buttons - one selected
	current_field_name = 'radio_btn'; current_container_id='radio_container'; current_error_message = 'No Radio selected<br />';
	if (isNotSelectedRadio(theForm.elements['form_mailer[radio_btn]'])){ error_msg += current_error_message; setBgColor(document.getElementById(current_container_id),error_field_bg_color); field_error[current_field_name]=1;} else { if(field_error[current_field_name]!=1) setBgColor(document.getElementById(current_container_id),valid_field_bg_color);}
	// radio button - value selected
	current_field_name = 'radio_btn'; current_container_id='radio_container'; current_error_message = '2nd radio not allowed<br />';
	if (getValueRadio(theForm.elements['form_mailer[radio_btn]']) == '2'){ error_msg += current_error_message; setBgColor(document.getElementById('radio_container'),error_field_bg_color); field_error[current_field_name]=1;} else { if(field_error[current_field_name]!=1) setBgColor(document.getElementById(current_container_id),valid_field_bg_color);}

	// drop-down - one selected
	current_field_name = 'dropdown'; current_error_message = 'No Drop-Down selected<br />';
	if (isNotSelectedSelect(theForm.elements[current_field_name])){ error_msg += current_error_message; setBgColor(theForm.elements[current_field_name],error_field_bg_color); field_error[current_field_name]=1;} else { if(field_error[current_field_name]!=1) setBgColor(theForm.elements[current_field_name],valid_field_bg_color);}

	// checkbox - is not checked
	current_field_name = 'checkbox_container'; current_error_message = '1st checbox not selected<br />';
	if (isNotCheckedCheckbox(theForm.elements[current_field_name])){ error_msg += current_error_message; setBgColor(theForm.elements[current_field_name],error_field_bg_color); field_error[current_field_name]=1;} else { if(field_error[current_field_name]!=1) setBgColor(theForm.elements[current_field_name],valid_field_bg_color);}

	// checkbox - how many checked
	current_container_id = 'checkbox'; current_error_message = 'None checked<br />';
	chkbx_array = Array (theForm.elements['form_mailer[checkbox]'], theForm.elements['form_mailer[checkbox1]'], theForm.elements['form_mailer[checkbox2]'], theForm.elements['form_mailer[checkbox3]']);
	if (getNumCheckedCheckbox(chkbx_array)==0){ error_msg += current_error_message; setBgColor(document.getElementById(current_container_id),error_field_bg_color); field_error[current_field_name]=1;} else { if(field_error[current_field_name]!=1) setBgColor(document.getElementById(current_container_id),valid_field_bg_color);}

	current_container_id = 'checkbox'; current_error_message = 'Too many checked<br />';
	if (getNumCheckedCheckbox(chkbx_array)>2){ error_msg += current_error_message; setBgColor(document.getElementById(current_container_id),error_field_bg_color); field_error[current_field_name]=1;} else { if(field_error[current_field_name]!=1) setBgColor(document.getElementById(current_container_id),valid_field_bg_color);}
*/
//////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////

