function getObj (id) {
  if      (document.layers)         return document.layers[id];              
  else if (document.all)            return document.all[id];           
  else if (document.getElementById) return document.getElementById(id);
  else                              return null;        
}


function trim(TRIM_VALUE){
	if(TRIM_VALUE.length < 1){
		return"";
	}
	TRIM_VALUE = RTrim(TRIM_VALUE);
	TRIM_VALUE = LTrim(TRIM_VALUE);
	if(TRIM_VALUE==""){
		return "";
	}
	else{
		return TRIM_VALUE;
	}
} //End Function

function RTrim(VALUE){
	var w_space = String.fromCharCode(32);
	var v_length = VALUE.length;
	var strTemp = "";
	if(v_length < 0){
		return"";
	}
	var iTemp = v_length -1;
	
	while(iTemp > -1){
		if(VALUE.charAt(iTemp) == w_space){
		}
		else{
			strTemp = VALUE.substring(0,iTemp +1);
			break;
		}
		iTemp = iTemp-1;
	
	} //End While
	return strTemp;

} //End Function

function LTrim(VALUE){
	var w_space = String.fromCharCode(32);
	if(v_length < 1){
		return"";
	}
	var v_length = VALUE.length;
	var strTemp = "";
	
	var iTemp = 0;
	
	while(iTemp < v_length){
		if(VALUE.charAt(iTemp) == w_space){
		}
		else{
			strTemp = VALUE.substring(iTemp,v_length);
			break;
		}
		iTemp = iTemp + 1;
	} //End While
	return strTemp;
} //End Function


var msg_1 = 'Bitte beachten Sie:';

var var_1 = new Array()
var_1[0] = new Array('QM_V_Firma','e','Bitte geben Sie Ihren Firmennamen an.','');
var_1[1] = new Array('QM_V_Name','e','Bitte geben Sie den Namen des Qualitätsmanagement-Verantwortlichen an.','');
var_1[2] = new Array('QM_V_Tel','e','Bitte geben Sie die Telefonnummer des Qualitätsmanagement-Verantwortlichen an.','');
var_1[3] = new Array('QM_V_Email','e','Bitte geben Sie die E-Mail-Adresse des Qualitätsmanagement-Verantwortlichen an.','');
var_1[4] = new Array('QM_V_Email','m','Bitte geben Sie die korrekte E-Mail-Adresse des Qualitätsmanagement-Verantwortlichen an.','');
var_1[5] = new Array('QrF_Name','e','Bitte geben Sie den Namen des Ansprechpartners für qualitätsrelevante Fragen an.','');
var_1[6] = new Array('QrF_Tel','e','Bitte geben Sie die Telefonnummer des Ansprechpartners für qualitätsrelevante Fragen an.','');
var_1[7] = new Array('QrF_Email','e','Bitte geben Sie die E-Mail-Adresse des Ansprechpartners für qualitätsrelevante Fragen an.','');
var_1[8] = new Array('QrF_Email','m','Bitte geben Sie die korrekte E-Mail-Adresse des Ansprechpartners für qualitätsrelevante Fragen an.','');
var_1[9] = new Array('UM_V_Name','e','Bitte geben Sie den Namen des Umweltmanagement-Verantwortlichen an.','');
var_1[10] = new Array('UM_V_Tel','e','Bitte geben Sie die Telefonnummer des Umweltmanagement-Verantwortlichen an.','');
var_1[11] = new Array('UM_V_Email','e','Bitte geben Sie die E-Mail-Adresse des Umweltmanagement-Verantwortlichen an.','');
var_1[12] = new Array('UM_V_Email','m','Bitte geben Sie die korrekte E-Mail-Adresse des Umweltmanagement-Verantwortlichen an.','');
var_1[13] = new Array('SM_V_Name','e','Bitte geben Sie den Namen des Sicherheitsmanagement-Verantwortlichen an.','');
var_1[14] = new Array('SM_V_Tel','e','Bitte geben Sie die Telefonnummer des Sicherheitsmanagement-Verantwortlichen an.','');
var_1[15] = new Array('SM_V_Email','e','Bitte geben Sie die E-Mail-Adresse des Sicherheitsmanagement-Verantwortlichen an.','');
var_1[16] = new Array('SM_V_Email','m','Bitte geben Sie die korrekte E-Mail-Adresse des Sicherheitsmanagement-Verantwortlichen an.','');


function validate(sender,myarray,err_hd)
{
	var err_msg = !err_hd?new Array('Bitte beachten Sie:\n'):new Array(err_hd+'\n');
	var error = false;
		
	for (i=0;i<myarray.length;i++) {
	  field = document.forms[sender.name].elements[myarray[i][0]];
	
	/* Block 1 überprüft Felder, die ausgefüllt sein müssen */
	  if (myarray[i][1].indexOf('e')>-1) {
		if (trim(field.value)=='') {
		  error = true;
		  err_msg.push(myarray[i][2]);
		}
	  }
	
	/* Block 2 überprüft, ob die Emailadresse formal richtig ist */
	  else if (myarray[i][1].indexOf('m')>-1) {
		if (field.value) {
		  var usr = "([a-zA-Z0-9][a-zA-Z0-9_.-]*|\"([^\\\\\x80-\xff\015\012\"]|\\\\[^\x80-\xff])+\")";
		  var domain = "([a-zA-Z0-9][a-zA-Z0-9._-]*\\.)*[a-zA-Z0-9][a-zA-Z0-9._-]*\\.[a-zA-Z]{2,5}";
		  var regex = "^"+usr+"\@"+domain+"$";
		  var myrxp = new RegExp(regex);
		  var check = (myrxp.test(field.value));
			if (check!=true) {
				error=true;
				err_msg.push(myarray[i][2]);
			}
		  }
		}
	
	/* Block 3 überprüft Felder, deren Wert eine Zahl sein muss */
	  else if (myarray[i][1].indexOf('n')>-1) {
		var num_error = false;
		if(field.value) {
		  var myvalue = field.value;
		  var num = myvalue.match(/[^0-9,\.]/gi)
		  var dot = myvalue.match(/\./g);
		  var com = myvalue.match(/,/g);
		  if (num!=null) {
			num_error = true;
		  }
		  else if ((dot!=null)&&(dot.length>1)) {
			num_error = true;
		  }
		  else if ((com!=null)&&(com.length>1)) {
			num_error = true;
		  }
		  else if ((com!=null)&&(dot!=null)) {
			num_error = true;
		  }
		}
		if (num_error==true) {
			error = true;
			//err_msg.push(myvalue+" "+myarray[i][2]);
					err_msg.push(myarray[i][2]);
		}
	  }
	
	/* Block 4 überprüft Wert anhand eines regulären Audrucks auf bestimmte Muster */
	  else if (myarray[i][1].indexOf('r')>-1) {
		var regexp = myarray[i][3];
		if (field.value) {
		  if (!regexp.test(field.value)) {
			error = true;
			err_msg.push(myarray[i][2]);
		  }
		}
	  }
	
	/* Block 5 überprüft Felder, die als Preis formatiert sein müssen, ändert die Formatierung eventuell */
	  else if (myarray[i][1].indexOf('p')>-1) {
		var myvalue = field.value;
		var reg = /,-{1,}|\.-{1,}/;
		var nantest_value = myvalue.replace(reg,"");
		var num = nantest_value.match(/[^0-9,\.]/gi)
		sep = myarray[i][1].substr(1,1)?myarray[i][1].substr(1,1):',';
		if (field.value) {
		  var myvalue = field.value.replace(/\./,',');
		  if (myvalue.indexOf(',')==-1) {
			field.value = myvalue+sep+'00';
		  }
		  else if (myvalue.indexOf(",--")>-1) {
			field.value = myvalue.replace(/,--/,sep+'00');
		  }
		  else if (myvalue.indexOf(",-")>-1) {
			field.value = myvalue.replace(/,-/,sep+'00');
		  }
		  else if (!myvalue.substring(myvalue.indexOf(',') + 2)) {
			error=true;
			err_msg.push(field.value+" "+myarray[i][2]);
		  }
		  else if (myvalue.substring(myvalue.indexOf(',') + 3)!='') {
			error=true;
			err_msg.push(field.value+" "+myarray[i][2]);
		  }
		  else if (num!=null) {
			error=true;
			err_msg.push(field.value+" "+myarray[i][2]);
		  }
		}
	  }
	
	/* Block 6 überprüft Namensfelder, und korrigiert evtl. die Groß-/Kleinschreibung */
	  else if (myarray[i][1].indexOf('c')>-1) {
		var noble = new Array("de","von","van","der","d","la","da","of");
		var newvalue='';
		var myvalue = field.value.split(/\b/);
		for (k=0;k<myvalue.length;k++) {
		  newvalue+= myvalue[k].substr(0,1).toUpperCase()+myvalue[k].substring(1);
		}
		for(k=0;k<noble.length;k++){
		  var reg = new RegExp ("\\b"+noble[k]+"\\b","gi");
		  newvalue = newvalue.replace(reg,noble[k]);
		}
		field.value = newvalue;
	  }
	}
	
	//Radiobuttons müssen separat geprüft werden:
	
	if (
		((sender.A1.checked==false)&&(sender.A2.checked==false)&&(sender.A3.checked==false)) ||
		((sender.B1.checked==false)&&(sender.B2.checked==false)&&(sender.B3.checked==false)) ||
		((sender.C1.checked==false)&&(sender.C2.checked==false)&&(sender.C3.checked==false)) ||
		((sender.D1.checked==false)&&(sender.D2.checked==false)&&(sender.D3.checked==false)) ||
		((sender.E1.checked==false)&&(sender.E2.checked==false)&&(sender.E3.checked==false)) ||
		((sender.F1.checked==false)&&(sender.F2.checked==false)&&(sender.F3.checked==false)) ||
		((sender.G1.checked==false)&&(sender.G2.checked==false)&&(sender.G3.checked==false)) ||
		((sender.H1.checked==false)&&(sender.H2.checked==false)&&(sender.H3.checked==false)) ||
		((sender.I1.checked==false)&&(sender.I2.checked==false)&&(sender.I3.checked==false)) ||
		((sender.J1.checked==false)&&(sender.J2.checked==false)&&(sender.J3.checked==false)) ||
		((sender.K1.checked==false)&&(sender.K2.checked==false)&&(sender.K3.checked==false)) ||
		((sender.L1.checked==false)&&(sender.L2.checked==false)&&(sender.L3.checked==false)) ||
		((sender.M1.checked==false)&&(sender.M2.checked==false)&&(sender.M3.checked==false)) ||
		((sender.N1.checked==false)&&(sender.N2.checked==false)&&(sender.N3.checked==false)) ||
		((sender.O1.checked==false)&&(sender.O2.checked==false)&&(sender.O3.checked==false)) ||
		((sender.P1.checked==false)&&(sender.P2.checked==false)&&(sender.P3.checked==false)) ||
		((sender.Q1.checked==false)&&(sender.Q2.checked==false)&&(sender.Q3.checked==false)) ||
		((sender.R1.checked==false)&&(sender.R2.checked==false)&&(sender.R3.checked==false)) ||
		((sender.S1.checked==false)&&(sender.S2.checked==false)&&(sender.S3.checked==false)) ||
		((sender.T1.checked==false)&&(sender.T2.checked==false)&&(sender.T3.checked==false)) ||
		((sender.U1.checked==false)&&(sender.U2.checked==false)&&(sender.U3.checked==false)) ||
		((sender.V1.checked==false)&&(sender.V2.checked==false))
		)
	{
		error = true;
		err_msg.push('Bitte füllen Sie alle Ja/Nein-Fragen vollständig aus.');	
	}

/* im Fehlerfall werden hier die gesammelten Fehlermeldungen verarbeitet und angezeigt. Wenn das
	Formular ohne Beanstandung ist, wird es übertragen */
	if (error) {
		err_msg = err_msg.join('\n\xB7 ');
		alert(err_msg + '\n\nVielen Dank!');
		return false;
	} else {
	return true;
 	}
}

// Weiche Formularverarbeitung/Formulardruck Lieferantenbewerbung:
function OnSubmitForm(form_id)
{
  if(document.todo == 'send')
  {
   document.forms[form_id].action = "beschaffung_fragebogen_QS_danke.aspx";
   document.forms[form_id].target = "_self";
   return validate(document.forms[form_id],var_1,msg_1);
  }
  else
  {
	if(document.todo == 'print')
	{
	  document.forms[form_id].action = "beschaffung_fragebogen_QS_print.aspx";
	  document.forms[form_id].target = "_blank";
	  return true;
	}
	else
	return false;  
  }
}

