// js var "langid" muss in der Seite auf aktuelle sys language uid gesetzt sein (typoscript)

langids=new Array();

langids[0]='de';
langids[1]='en';
jsLang=langids[langid];
// 

// Mailformular überprüfen

//   Aufruf mit 'Feldname','Feldbezeichnung','Test'   (wenn 2. Parameter == '' dann = 1.Parameter)

//   mit den möglichen Überprüfungen bei Test:

//   'R' oder 'N': benötigtes Feld

//   'isEmail'   : E-Mail Adresse

//   'isAlpha'   : nur Buchstaben, Leerräume und Satzzeichen, keine Ziffern

//   'isTel'     : Telefonnummer

//   'isNum'     : Zahl

//   'inRange1:3': Zahl im Bereich von 1 bis 3

//   'Select1'   : Element in einer Liste (bei Menü 2.Element) muss ausgewählt sein

//   'Radio'     : Element im Optionsfeld muss ausgewählt sein

// 

var responses=new Array();
responses ['de']=new Array();
responses ['en']=new Array();


responses['de']["Rs"]		=" muss ausgewählt werden.\n";
responses['de']["isEmail"]	=" muss eine korrekte E-Mail-Adresse sein.\n";
responses['de']["isNum"]	=" muss eine Zahl sein.\n";
responses['de']["isNumBetween"]	=" muss eine Zahl zwischen ";
responses['de']["and"]		=" und ";
responses['de']["sein"]		=" sein";
responses['de']["R"]		=" wird benötigt.\n";
responses['de']["check"]	=" Bitte überprüfen Sie folgende Inhalte des Formulars:\n";
responses['de']["Tel"] 		=" darf nur Ziffern, Leerräume und \"+()/-\"-Zeichen enthalten.\n";
responses['de']["Alpha"] 	=" darf nur Buchstaben, Leerräume und \",.-\"'-Zeichen enthalten.\n"

responses['en']["Rs"]		=" must be selected.\n";
responses['en']["isEmail"]	=" must be a valid E-mail address.\n";
responses['en']["isNum"]	=" must be a numeric value.\n";
responses['en']["isNumBetween"]	=" must be a number between ";
responses['en']["and"]		=" and ";
responses['en']["sein"]		="";
responses['en']["R"]		=" is required.\n";
responses['en']["check"]	=" Please check the following fields in the submitted form:\n";
responses['en']["Tel"] 		=" must contain only numbers, spaces and the characters \"+()/-\"\n";
responses['en']["Alpha"] 	=" must contain only letters, spaces and the characters  \",.-\"'\n"

var wait = new Element('div',{'class':'waitscreen','styles': {'vertical-align': 'middle',},});
var img = new Element('img',{'src':'/fileadmin/hummel/templates/images/layout/loading.gif','alt':'','width':'32px','height':'32px',});
var text = new Element('span',{'html':'bitte warten...','styles': {'top': '-11px','position': 'relative'},});
img.inject(wait);
text.inject(wait);

function isNodeList(node){
	try{
		node.isEqualNode(node);
		return false;
	}catch(e){
		return true;
	}
}
function radioisChecked(node){
	for(var i=0;i<node.length;i++){
		if(node[i].checked){
			return true;
		}
	}
	return false;
}

function CheckMail() {
  var i,p,pa,q,name,test,num,min,max,errors='',args=CheckMail.arguments



	for (i=0; i<(args.length-2); i+=3) {

		name = (args[i+1] ? args[i+1] : args[i])

		test = args[i+2]

		val  = MM_findObj(args[i])

		
		if (val) {
			// Code Färbt nicht ausgefüllte felder rot
			//val.getParent().getParent().setStyle('color','orange');
			//alert(test)
			//alert(val+" type: "+test+" name: "+name+" objekt ist "+isNodeList(val));
			if(isNodeList(val)){
				val[0].getParent().getParent().setStyle('color','#555555');
			}else{
				val.getParent().getParent().setStyle('color','#555555');
			}
			//alert(args[i]+" länge: "+name.length);
			
			
			if(name.length>40){
				name="Zustimmung";
				
				
			}
			
			if(val.type =="checkbox" && val.checked==""){
				errors += '- '+name+responses[jsLang]['Rs']
			}
			
			
			if (test.indexOf('Select') != -1) {
				p = test.substring(7)
				if (val.selectedIndex < p){
					errors += '- '+name+responses[jsLang]['Rs']
					val.getParent().getParent().setStyle('color','orange');
					
				}
			}

			else if (isNodeList(val)){
				//alert(val+" type: "+test+" name: "+name+" objekt ist nodelist: "+isNodeList(val));
				if(!radioisChecked(val)){
					errors += '- '+name+responses[jsLang]['Rs']
					val[0].getParent().getParent().setStyle('color','orange');
				}
			}

			else if (test.indexOf('Radio') != -1) {
				if (!GetRadioValue(val)){
					errors += '- '+name+responses[jsLang]['Rs']
					val.getParent().getParent().setStyle('color','orange');	
				}
			}



			else if ((inputval=val.value) != "") {
				if (test.indexOf('isEmail') != -1) {
					p  = inputval.indexOf('@')
					pa = inputval.split('@')

					pspc = inputval.indexOf(' ')
					if (pspc>0 || p<1 || p==(inputval.length-1) || (q=pa.length)>2 || pa[1]==pa[1].split('.')[0]){
						errors += '- '+name+responses[jsLang]['isEmail']
						val.getParent().getParent().setStyle('color','orange');
						
					}
				}
				
				else if(inputval==0){
					errors += '- '+name+responses[jsLang]['Rs']
					val.getParent().getParent().setStyle('color','orange');
					
				}		
				
				else if (test.indexOf('isAlpha') != -1) {
					if ((q = CheckMailText(inputval,'Alpha')) != ''){
						errors += '- '+name+q
						val.getParent().getParent().setStyle('color','orange');
						
					}
				}



				else if (test.indexOf('isTel') != -1) {

					if ((q = CheckMailText(inputval,'Tel')) != ''){
						errors += '- '+name+q			
						val.getParent().getParent().setStyle('color','orange');
						
					}
				}



				else if (test != 'R') {
					num = parseFloat(inputval)
					if (inputval.replace(/^0*/,"") != ''+num){
						errors += '- '+name+responses[jsLang]['isNum']
						val.getParent().getParent().setStyle('color','orange');
						
					}
					if (test.indexOf('inRange') != -1) {
						p   = test.indexOf(':')

						min = test.substring(8,p)
						max = test.substring(p+1)        

						if (num<min || max<num){
							errors+='- '+name+responses[jsLang]['isNumBetween']+min+responses[jsLang]['and']+max+responses[jsLang]['sein']
							val.getParent().getParent().setStyle('color','orange');
							
						}
					}

				}

			}

			else if (test.charAt(0) == 'R'){
				errors += '- '+name+responses[jsLang]['R']
				val.getParent().getParent().setStyle('color','orange');
				
			}
		}
	}
	if($('zeugnisse') ){
		var z = $('zeugnisse');
		var l = $('lebenslauf');
		var zval= z.value.substring(z.value.length-4);
		var lval= l.value.substring(l.value.length-4);
		var u = new Array('.pdf','.doc','');
		switch (zval){
			case u[0]:
			break;
			case u[1]:
			break;
			case u[2]:
			break;
			default:
				errors += '- Zeugniss ist kein PDF oder Dokument\n';
			break;
		}	
		switch (lval){
			case u[0]:
			break;
			case u[1]:
			break;
			case u[2]:
			break;
			default:
				errors += '- Lebenslauf ist kein PDF oder Dokument\n';
			break;
		}	
	}


	if (errors)
		alert(responses[jsLang]['check']+errors)
	else{
		//bitte warten... 
		
		wait.replaces($('absenden'));
	}
	return (errors == '')

}




// 

// Überprüfung eines Textes auf korrekte Zeichen

// 



function CheckMailText(text,was) {

  var i,j,ch,checkOK,errorText,error=''



  if (was == 'Tel') {

	checkOK   = "0123456789+()/- \t\r\n\f"
	errorText = responses[jsLang]['Tel']
	}

   else if (was == 'Alpha') {

	checkOK   = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþ,.-' \t\r\n\f"
	errorText = responses[jsLang]['Tel']
    }
	
  for (i=0; i<text.length; i++) {

    ch = text.charAt(i)

    for (j=0; j<checkOK.length; j++)

      if (ch == checkOK.charAt(j))

        break

    if (j == checkOK.length) {

      error = errorText

      break

      }

    }



  return error

}


function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {

    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}

  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}





// 

// Wert einer Auswahl bestimmen

// 

function GetRadioValue( radioObject ) {

  var value = null;



  // Validate parameter value

  if (radioObject+"" == "undefined" || radioObject == null)

    return null;

  for (var i=0; i < radioObject.length; i++) {

    if (radioObject[i].checked) {

      value = radioObject[i].value;

      break;

      }

    }

  return value;

}





// 

// Wert einer Liste bestimmen

// 

function GetListValue( listObject ) {

  var value = null;



  // Validate parameter value

  if (listObject+"" == "undefined" || listObject == null)

    return null;



  return(listObject[listObject.selectedIndex].value)

}


