var phone_regexp = /^((\+[0-9]{2})|00|0)([0-9]{4})([/ \- ]?)([0-9]+)(-?)([0-9]+)$/;
var email_regexp = /^[-_.\w]+@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]){1,300}(\.)[a-zA-Z]{2,9}$/;
var corr_color = "#33FF33";
var bad_color = "#FF7777";
var std_color = "#AFAFAF";
var Ergebniss, status;

var kontakt_fields		= new Object();
kontakt_fields["name"]		= 'n';
kontakt_fields["firstname"]	= 'n';
kontakt_fields["phone"]		= 'y';
kontakt_fields["email"]		= 'n';

var ref_fields			= new Object();
ref_fields["ref_company"]		= 'n';
ref_fields["ref_pers_name"]		= 'n';
ref_fields["ref_telefon"]		= 'n';
ref_fields["ref_email"]			= 'n';
ref_fields["ref_branche"]		= 'n';

var schulung_fields			= new Object();
schulung_fields["email"]		= 'n';
schulung_fields["firstname"]	= 'n';
schulung_fields["contactname"]	= 'n';


function set_contact_method(status){
	// getElement(0,"_phone_star",0).style.display = toggle(status,'rueckruf','inline','none');
	// getElement(1,"phone",0).style.backgroundColor =  toggle(status,'rueckruf','#dcdcdc','#FFFFFF');
	// getElement(1,"depend_phone",0).value = toggle(status,'rueckruf','1','0');
	
	if(getElement(1,"depend_phone",0).value == 1)
	{
		if(phone_regexp.exec(getElement(0,"phone",0).value) == null)
		{
			getElement(1,"submit",0).disabled			= 'disabled';
			getElement(0,"phone",0).style.borderColor	= bad_color;
			kontakt_fields["phone"]						= 'n';
		}
		else
		{
			getElement(1,"submit",0).disabled			= '';
			getElement(0,"phone",0).style.borderColor	= corr_color;
			kontakt_fields["phone"]						= 'y';
		}
	}
	else if(getElement(1,"depend_phone",0).value == 0)
	{
		getElement(0,"phone",0).style.borderColor		= std_color;
		kontakt_fields["phone"]							= 'y';
	}
	
	check_fields(kontakt_fields);
}

function check_validity(check_flag,obj,fieldset)
{
	var tmp_regexp;
	switch(check_flag)
	{
	case 0:
		fieldset[obj.id] =  toggle(obj.value,'','n','y');
		obj.style.borderColor = toggle(obj.value,'',bad_color,corr_color);
		break;
		
	case 1:
		switch(obj.id)
		{
			case "phone":
				if(getElement(1,"depend_phone",0).value == '1')
				{
					tmp_regexp = phone_regexp;
				}
				else
				{
					tmp_regexp = /^.*$/;
				}
				break;
				
			case "email":
				tmp_regexp = email_regexp;
				break;
				
			case "ref_email":
				tmp_regexp = email_regexp;
				break;
				
			case "schulung_email":
				tmp_regexp = email_regexp;
				break;
				
			case "ref_telefon":
				tmp_regexp = phone_regexp;
				break;
		}
		fieldset[obj.id]			= toggle((tmp_regexp.exec(obj.value)),null,'n','y');
		if(tmp_regexp != "/^.*$/")
		{
			obj.style.borderColor	= toggle((tmp_regexp.exec(obj.value)),null,bad_color,corr_color);
		}		
		break;
	}
	check_fields(fieldset);	
}

function toggle(check,to_check,stat1,stat2)
{
	to_set = (check == to_check ? stat1 : stat2);
	return to_set;
}

function getElement(get_flag,obj_id,index)
{
	var obj = null;
	switch(get_flag)
	{
		case 0:
			obj = document.getElementById(obj_id);
			break;
			
		case 1:
			obj = document.getElementsByName(obj_id)[index];
			break;
	}
	return obj;
}

function check_fields(fieldset){
	if(typeof (getElement(1,"submit",0))=='undefined'){
		alert('Ein unerwarteter Fehler trat auf!');
		return false;
	}
	var correct_fields_string = '';
	for(i in fieldset){
		correct_fields_string = correct_fields_string + fieldset[i];
		if ( correct_fields_string == 'yyyyy' || correct_fields_string == 'yyyy' || correct_fields_string == 'yyy' ){
				getElement(1,"submit",0).removeAttribute("disabled");
			}else{
				getElement(1,"submit",0).setAttribute("disabled","disabled"); 
			}
		}
}

