/**
 * @author clemensgull
 */

 function checkform(formular){
 	var err = 0;
 	felder = formular.getElements();
 	for (i = 0; i < felder.length; i++) {
 		if ($(felder[i]).hasClassName('oblig')) {
 			retVal=fldcheck(felder[i]);
 		}
 	}
	form=$(formular).identify();
	new Ajax.Request('inc/ajax_mail.php?send=1', {
		method: 'post', postBody:$(form).serialize(),
		onComplete: function(t){
			alert(t.responseText);
		}
	});
	return false;
 }
 
 function fldcheck(element) {
	var errShown=0;
	var fldName = element.identify();
	var errName = fldName.replace(/txt/, "ERR");
	var errVisible = $(errName).visible();
	try {
		var minLen = $(fldName).readAttribute('min');
	} catch (e) {
		minLen = 0;
	}
	var fldValue = $F(fldName);
 	if (!errVisible) {
		if (fldValue == "" || fldValue.length < minLen) {
			errShown++;
		} 
		var fName=fldName.toLowerCase();
		if (fName.indexOf("email")>0) {
			if (!checkEmail(fldValue)) {
				errShown++;
			}
		}
		if (errShown!=0) {
			Effect.Appear(errName);
			Effect.Fade('btnSubmit');
			return false;
		}
	} else { 
 		if (errShown==0) {
			Effect.Fade(errName);
			Effect.Appear('btnSubmit');
		}
	}
	return true;
 }
 
 function checkfield(event) {
	fldcheck(event.element());
 }
 
 function checkEmail(email){
    if (email.length==0) {  
		return false;
    }
    if (!allValidChars(email)) {  // check to make sure all characters are valid
        return false;
    }
    if (email.indexOf("@") < 1) { //  must contain @, and it must not be the first character
		return false;
	}
	else if (email.lastIndexOf(".") <= email.indexOf("@")) { // last dot must be after the @
		return false;
	} else if (email.indexOf("@") == email.length) { // @ must not be the last character
		return false;
	} else if (email.indexOf("..") >= 0) { // two periods in a row is not valid
		return false;
	} else if (email.indexOf(".") == email.length) { // . must not be the last character
		return false;
	}
    return true;
}

 function allValidChars(email) {
  var parsed = true;
  var validchars = "abcdefghijklmnopqrstuvwxyz0123456789@.-_";
  for (var i=0; i < email.length; i++) {
    var letter = email.charAt(i).toLowerCase();
    if (validchars.indexOf(letter) != -1) {
		continue;
	}
    parsed = false;
    break;
  }
  return parsed;
 }

 
 window.onload = function(){
 	forms=$$('form');
	if (forms.length>0) {
		for (j = 0; j < forms.length; j++) {
			felder = forms[j].getElements();
			for (i = 0; i < felder.length; i++) {
				if ($(felder[i]).hasClassName('oblig')) {
					fldName = felder[i].identify();
					Event.observe(fldName, 'blur', checkfield);
				}
			}
		}
	}
 }

 
