﻿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

// Prüfung auf gültige E-Mail-Adresse:

function EMail(s)
{
 var a = false;
 var res = false;
 if(typeof(RegExp) == 'function')
 {
  var b = new RegExp('abc');
  if(b.test('abc') == true){a = true;}
  }

 if(a == true)
 {
  reg = new RegExp('^([a-zA-Z0-9\\-\\.\\_]+)'+
                   '(\\@)([a-zA-Z0-9\\-\\.]+)'+
                   '(\\.)([a-zA-Z]{2,4})$');
  res = (reg.test(s));
 }
 else
 {
  res = (s.search('@') >= 1 &&
         s.lastIndexOf('.') > s.search('@') &&
         s.lastIndexOf('.') >= s.length-5)
 }
 return(res);
}



/*
Source: http://aktuell.de.selfhtml.org/tippstricks/javascript/formkontrolle/

Parameter für die Art der Validierung:

e  	empty  	    das Element darf nicht leer sein
n 	number 	    das Element muss eine Zahl sein
m 	mail 	    eine Emailadresse muss formal richtig sein
r 	regexp 	    der Wert soll ein bestimmtes Muster haben
p 	price 	    der Wert soll in der Form "10,00" sein (mit Komma)
p. 	price_dot 	der Wert soll in der Form "10.00" sein (mit Punkt)
c 	capitalize 	Namen sollen korrigiert werden

*/

var msg_1 = 'Bitte beachten Sie:';

var var_1 = new Array()
var_1[0] = new Array('Firma','e','Bitte geben Sie den Firmennamen an.','');
var_1[1] = new Array('Str','e','Bitte geben Sie die Straße an.','');
var_1[2] = new Array('PLZ','e','Bitte geben Sie die Postleitzahl an.','');
var_1[3] = new Array('Ort','e','Bitte geben Sie den Ort an.','');
var_1[4] = new Array('Land','e','Bitte geben Sie das Land an.','');
var_1[5] = new Array('Ansprech','e','Bitte geben Sie einen Ansprechpartner an.','');
var_1[6] = new Array('Tel','e','Bitte geben Sie Ihre Telefonnummer an.','');
var_1[7] = new Array('Email','m','Bitte geben Sie eine korrekte E-Mail-Adresse an.','');
var_1[8] = new Array('GJahr','e','Bitte geben Sie das Gründungsjahr Ihres Unternehmens an.','');
var_1[9] = new Array('GJahr','n','Das Gründungsjahr Ihres Unternehmens sollte eine Jahreszahl sein.','');
var_1[10] = new Array('GJahr','r','Das Gründungsjahr Ihres Unternehmens sollte eine vierstellige Jahreszahl sein.',/\w{4}/);
var_1[11] = new Array('Umsatz_01','e','Bitte geben Sie Ihren Umsatz im Jahr 2007 an.','');
var_1[12] = new Array('Umsatz_02','e','Bitte geben Sie Ihren Umsatz im Jahr 2008 an.','');
var_1[13] = new Array('Umsatz_03','e','Bitte geben Sie Ihren Umsatz im Jahr 2009 an.','');
var_1[14] = new Array('Umsatz_04','e','Bitte geben Sie Ihren Umsatz im Jahr 2010 an.','');
var_1[15] = new Array('Mitarb_ges','e','Bitte geben Sie die Anzahl Mitarbeiter gesamt an.','');
var_1[16] = new Array('Herstaetten','e','Bitte geben Sie mindestens eine Herstellungsstätte an.','');
//var_1[17] = new Array('REclass','e','Bitte geben Sie Ihr Leistungsangebot nach Rothe Erde Klassifikation 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;
	
	// Falls FZK ausgefüllt wurde, müssen keine sonstigen Pflichtfelder gefüllt sein.
	// Die Validierung der FZK erfolgt dann im nächsten Schritt auf dem Server.
	// Falls aber jemand ein Zertifikat angeklickt hat, muss auch das entsprechende Ablaufdatum angegeben sein.
	// Diese Prüfung muss also trotzdem erfolgen.
	if ((trim(sender.FZK.value) > ''))
	{
		// QMS-Zertifikate prüfen: Keine Auswahl ohne Ablaufdatum!
		var tmpStr = checkQMS_Zertifikate(sender);
		if (tmpStr > "")
		{
			error = true;
			err_msg.push(tmpStr);
		}
		
		// UMS-Zertifikate prüfen: Keine Auswahl ohne Ablaufdatum!
		var tmpStr = checkUMS_Zertifikate(sender);
		if (tmpStr > "")
		{
			error = true;
			err_msg.push(tmpStr);
		}
		
		// ASM-Zertifikate prüfen: Keine Auswahl ohne Ablaufdatum!
		var tmpStr = checkASM_Zertifikate(sender);
		if (tmpStr > "")
		{
			error = true;
			err_msg.push(tmpStr);
		}
		
	} else {
	
		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 (!field.value) {
				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(field.value+" "+myarray[i][2]);
							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;
		  }
		}
		
		//Spezialbedingungen müssen separat geprüft werden:
		
		// Händler / Hersteller: Mindestens eine checkbox angekreuzt?
		if ((sender.Hersteller.checked==false) && (sender.Haendler.checked==false))
		{
			error = true;
			err_msg.push('Bitte geben Sie an, ob Sie Hersteller, Händler oder beides sind.');		
		}
		
		// TK-Unternehmen: Mindestens ein Radiobutton angewählt?
		if ((sender.TK_yes.checked==false) && (sender.TK_no.checked==false))
		{
			error = true;
			err_msg.push('Bitte geben Sie an, ob Sie ein Unternehmen des ThyssenKrupp Konzerns sind.');		
		}
		
		// Qualitätsmanagement: Angabe gemacht?
		if ((sender.QMS_nv.checked==false) && (sender.QMS_v.checked==false))
		{
			error = true;
			err_msg.push('Bitte machen Sie eine Angabe zu Ihrem Qualitätsmanagement.');		
		}
		
		// QMS-Zertifikate prüfen: Keine Auswahl ohne Ablaufdatum!
		var tmpStr = checkQMS_Zertifikate(sender);
		if (tmpStr > "")
		{
			error = true;
			err_msg.push(tmpStr);
		}
		
		// Umweltmanagement: Angabe gemacht?
		if ((sender.UMS_nv.checked==false) && (sender.UMS_v.checked==false))
		{
			error = true;
			err_msg.push('Bitte machen Sie eine Angabe zu Ihrem Umweltmanagement.');		
		}
		
		// UMS-Zertifikate prüfen: Keine Auswahl ohne Ablaufdatum!
		var tmpStr = checkUMS_Zertifikate(sender);
		if (tmpStr > "")
		{
			error = true;
			err_msg.push(tmpStr);
		}
		
		// Arbeitssicherheitsmanagement: Angabe gemacht?
		if ((sender.ASM_nv.checked==false) && (sender.ASM_v.checked==false))
		{
			error = true;
			err_msg.push('Bitte machen Sie eine Angabe zu Ihrem Sicherheitsmanagement.');		
		}
		
		// ASM-Zertifikate prüfen: Keine Auswahl ohne Ablaufdatum!
		var tmpStr = checkASM_Zertifikate(sender);
		if (tmpStr > "")
		{
			error = true;
			err_msg.push(tmpStr);
		}
		
		// REclass-Angabe prüfen:
		
		if (isREclassEmpty(sender))
		{
			error = true;
			err_msg.push('Bitte geben Sie Ihr Leistungsangebot nach Rothe Erde Klassifikation an.');
		}
		
		
	}
	/* 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;
 	}
}

function isREclassEmpty(sender)
{
for (var i=0; i < sender.REclass.length; i++)
   {
   if (sender.REclass[i].checked)
      {
      return false;
      }
   }
return true;
}


// Weiche Formularverarbeitung/Formulardruck Lieferantenbewerbung:
function OnSubmitForm(form_id)
{
  if(document.todo == 'send')
  {
   document.forms[form_id].action = "beschaffung_lieferantenbewerbung_danke.aspx";
   document.forms[form_id].target = "_self";
   //alert(document.forms[form_id].action);
   return validate(document.forms[form_id],var_1,msg_1);
  }
  else
  {
	if(document.todo == 'print')
	{
	  document.forms[form_id].action = "beschaffung_lieferantenbewerbung_print.aspx";
	  document.forms[form_id].target = "_blank";
	  //alert(document.forms[form_id].action);
	  return true;
	}
	else
	return false;  
  }
}

// Angaben zum Qualitätsmanagement gemacht?
function checkQMS_Zertifikate(sender)
{
	var err_msg = new Array();
	var reg_ex_date=/[0-9]{2}\/[0-9]{4}/; // MM/JJJJ
	var inhalt;
		
	// Wenn Zertifikat angekreuzt, muss auch Gültigkeitsdatum angegeben sein.
	if ((sender.QMS_Z_01.checked==true) && sender.QMS_Z_01.disabled==false)
	{
		inhalt = trim(sender.QMS_Z_01_G.value);
		if (!reg_ex_date.test(inhalt))
		{
			err_msg.push('Bitte geben Sie für das Zertifikat "' + sender.QMS_Z_01.value + '" das Ablaufdatum im Format MM/JJJJ an.');
		}
	}
	if ((sender.QMS_Z_02.checked==true) && sender.QMS_Z_02.disabled==false)
	{
		inhalt = trim(sender.QMS_Z_02_G.value);
		if (!reg_ex_date.test(inhalt))
		{
			err_msg.push('Bitte geben Sie für das Zertifikat "' + sender.QMS_Z_02.value + '" das Ablaufdatum im Format MM/JJJJ an.');
		}
	}
	if ((sender.QMS_Z_03.checked==true) && sender.QMS_Z_03.disabled==false)
	{
		inhalt = trim(sender.QMS_Z_03_G.value);
		if (!reg_ex_date.test(inhalt))
		{
			err_msg.push('Bitte geben Sie für das Zertifikat "' + sender.QMS_Z_03.value + '" das Ablaufdatum im Format MM/JJJJ an.');
		}
	}
	if ((sender.QMS_Z_04.checked==true) && sender.QMS_Z_04.disabled==false)
	{
		inhalt = trim(sender.QMS_Z_04_G.value);
		if (!reg_ex_date.test(inhalt))
		{
			err_msg.push('Bitte geben Sie für das Zertifikat "' + sender.QMS_Z_04.value + '" das Ablaufdatum im Format MM/JJJJ an.');
		}
	}
	if ((sender.QMS_Z_05.checked==true) && sender.QMS_Z_05.disabled==false)
	{
		inhalt = trim(sender.QMS_Z_05_G.value);
		if (!reg_ex_date.test(inhalt))
		{
			err_msg.push('Bitte geben Sie für das Zertifikat "' + sender.QMS_Z_05.value + '" das Ablaufdatum im Format MM/JJJJ an.');
		}
	}
	if ((sender.QMS_Z_06.checked==true) && sender.QMS_Z_06.disabled==false)
	{
		inhalt = trim(sender.QMS_Z_06_G.value);
		if ((inhalt=="") || (inhalt=="welche?"))
		{
			err_msg.push('Bitte geben Sie die Bezeichnung der anderen Norm beim Qualitätsmanagement an.');
		}
	}

	err_msg = err_msg.join('\n\xB7 ');
	return err_msg;
	
}

// Angaben zum Umweltmanagement gemacht?
function checkUMS_Zertifikate(sender)
{
	var err_msg = new Array();
	var reg_ex_date=/[0-9]{2}\/[0-9]{4}/; // MM/JJJJ
	var inhalt;
		
	// Wenn Zertifikat angekreuzt, muss auch Gültigkeitsdatum angegeben sein.
	if ((sender.UMS_Z_01.checked==true) && sender.UMS_Z_01.disabled==false)
	{
		inhalt = trim(sender.UMS_Z_01_G.value);
		if (!reg_ex_date.test(inhalt))
		{
			err_msg.push('Bitte geben Sie für das Zertifikat "' + sender.UMS_Z_01.value + '" das Ablaufdatum im Format MM/JJJJ an.');
		}
	}
	if ((sender.UMS_Z_02.checked==true) && sender.UMS_Z_02.disabled==false)
	{
		inhalt = trim(sender.UMS_Z_02_G.value);
		if (!reg_ex_date.test(inhalt))
		{
			err_msg.push('Bitte geben Sie für das Zertifikat "' + sender.UMS_Z_02.value + '" das Ablaufdatum im Format MM/JJJJ an.');
		}
	}
	if ((sender.UMS_Z_03.checked==true) && sender.UMS_Z_03.disabled==false)
	{
		inhalt = trim(sender.UMS_Z_03_G.value);
		if ((inhalt=="") || (inhalt=="welche?"))
		{
			err_msg.push('Bitte geben Sie die Bezeichnung der anderen Norm beim Umweltmanagement an.');
		}
	}

	err_msg = err_msg.join('\n\xB7 ');
	return err_msg;
	
}

// Angaben zum Arbeitssicherheitsmanagement gemacht?
function checkASM_Zertifikate(sender)
{
	var err_msg = new Array();
	var reg_ex_date=/[0-9]{2}\/[0-9]{4}/; // MM/JJJJ
	var inhalt ;
		
	// Wenn Zertifikat angekreuzt, muss auch Gültigkeitsdatum angegeben sein.
	if ((sender.ASM_Z_01.checked==true) && sender.ASM_Z_01.disabled==false)
	{
		inhalt = trim(sender.ASM_Z_01_G.value);
		if (!reg_ex_date.test(inhalt))
		{
			err_msg.push('Bitte geben Sie für das Zertifikat "' + sender.ASM_Z_01.value + '" das Ablaufdatum im Format MM/JJJJ an.');
		}
	}
	if ((sender.ASM_Z_02.checked==true) && sender.ASM_Z_02.disabled==false)
	{
		inhalt = trim(sender.ASM_Z_02_G.value);
		if (!reg_ex_date.test(inhalt))
		{
			err_msg.push('Bitte geben Sie für das Zertifikat "' + sender.ASM_Z_02.value + '" das Ablaufdatum im Format MM/JJJJ an.');
		}
	}
	if ((sender.ASM_Z_03.checked==true) && sender.ASM_Z_03.disabled==false)
	{
		inhalt = trim(sender.ASM_Z_03_G.value);
		if (!reg_ex_date.test(inhalt))
		{
			err_msg.push('Bitte geben Sie für das Zertifikat "' + sender.ASM_Z_03.value + '" das Ablaufdatum im Format MM/JJJJ an.');
		}
	}
	if ((sender.ASM_Z_04.checked==true) && sender.ASM_Z_04.disabled==false)
	{
		inhalt = trim(sender.ASM_Z_04_G.value);
		if (!reg_ex_date.test(inhalt))
		{
			err_msg.push('Bitte geben Sie für das Zertifikat "' + sender.ASM_Z_04.value + '" das Ablaufdatum im Format MM/JJJJ an.');
		}
	}
	if ((sender.ASM_Z_05.checked==true) && sender.ASM_Z_05.disabled==false)
	{
		inhalt = trim(sender.ASM_Z_05_G.value);
		if (!reg_ex_date.test(inhalt))
		{
			err_msg.push('Bitte geben Sie für das Zertifikat "' + sender.ASM_Z_05.value + '" das Ablaufdatum im Format MM/JJJJ an.');
		}
	}
	if ((sender.ASM_Z_06.checked==true) && sender.ASM_Z_06.disabled==false)
	{
		inhalt = trim(sender.ASM_Z_06_G.value);
		if (!reg_ex_date.test(inhalt))
		{
			err_msg.push('Bitte geben Sie für das Zertifikat "' + sender.ASM_Z_06.value + '" das Ablaufdatum im Format MM/JJJJ an.');
		}
	}
	if ((sender.ASM_Z_07.checked==true) && sender.ASM_Z_07.disabled==false)
	{
		inhalt = trim(sender.ASM_Z_07_G.value);
		if ((inhalt=="") || (inhalt=="welche?"))
		{
			err_msg.push('Bitte geben Sie die Bezeichnung der anderen Norm beim Sicherheitsmanagement an.');
		}
	}

	err_msg = err_msg.join('\n\xB7 ');
	return err_msg;
	
}


