

var radio_ok=false;
var FormFieldArray=new Array(100);
var currentElement=0;
function checkEMail(s,text)
  {
    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)
    }
    if (res==false)
    {
      submitable=false;
      //alert(text);
      return false;
    }
    return true;
  }

  function strtrim() {
    //Match spaces at beginning and end of text and replace
    //with null strings
    return this.replace(/^\s+/,'').replace(/\s+$/,'');
  }

  function checkCheckbox(myField,myText) {
    if (myField.checked==false)
    {
       //alert(myText);
       return false;
    }
    return true;
  }

  function checkRadio(myFieldname,myText) {
    laenge = document.forms[0].elements.length;
    for ( var count = 0; count < laenge; count++ )
    {
      myelement = document.forms[0].elements[count].name;
      if (myelement==myFieldname )
      {
        if (document.forms[0].elements[count].checked==true)
        {
           radio_ok = true;
        }
      }
    }
    if (radio_ok == false)
    {
      //alert(myText);
      return false;
    }
    return true;
  }

  function checkMinLength(myField,myText,myLocalLength)
  {
    myField.value=myField.value.trim();
    if (myField.value.length<myLocalLength)
    {
      submitable=false;
      //alert(myText);
      return false;
    }
    return true;
  }
  
  function checkMinLengthTextarea(myField,myText,myLocalLength)
  {
    alert("Textarea");
    alert(myField.value);
    
    myField.text=myField.text.trim();
    alert(myField.text.length);
    if (myField.text.length<myLocalLength)
    {
      submitable=false;
      //alert(myText);
      return false;
    }
    return true;
  }


  function checkLength(myField,myText,myLength)
  {
    myField.value=myField.value.trim();
    if (myField.value.length!=myLength)
    {
      submitable=false;
      //alert(myText);
      return false;
    }
    return true;
  }

  function checkJpg(myField,myText,myLength)
  {
    if (myField.value.length>4)
    {
      myLastPoint=myField.value.lastIndexOf(".");
      myExtension=myField.value.substring(myLastPoint,myField.value.length);
      myExtension=myExtension.toLowerCase();
      if(myExtension == ".jpg" || myExtension == ".jpeg")
      {
        return true;
      }
      else
      {
        submitable=false;
        //alert (myText);
        return false;
      }
    }
    return true;
  }
   
  function checkField(myName,myType,myText,myLength,pos,required,def)
  {
        
        // Prüfen ob es ein "Required-Feld" gibt. Nur dann ist es Pflichtfeld
	
        if(required && required!=""){
		var myElement=document.getElementById(required);
		if (myElement.checked==false){
			return true;
		}
	}
	
	  
	radio_ok = false;
        var myElement=document.getElementById(myName);
	var result=false;
	var defresult=true;
	// Default-Werte werden nicht berücksichtigt:
	if (def){
		if (myElement.value==def){
			defresult=false;
		}
	}       
	if (defresult){
		if (myType=="email")            result= checkEMail(myElement.value,myText);
		if (myType=="text")             result= checkLength(myElement,myText,myLength);
		if (myType=="mintext")         result= checkMinLength(myElement,myText,myLength);
		if (myType=="jpg")               result= checkJpg(myElement,myText,myLength);
		if (myType=="checkbox")         result= checkCheckbox(myElement,myText);
		if (myType=="radio")            result= checkRadio(myName,myText);
		//if (myType=="mintextarea")      result= checkMinLengthTextarea(myElement,myText,myLength);
		if (myType=="mintextarea")      result= checkMinLength(myElement,myText,myLength);
	} else {
		result=false;
	}
        if (result==false){
          myElement.focus();
          if (FormFieldArray[pos]['style']=="none"){
            FormFieldArray[pos]['style']=myElement.style.backgroundColor;
          }
          myElement.style.backgroundColor="#f3f3d3";
          alert(myText);
        } else {
          if (FormFieldArray[pos]['style']!="none"){
            myElement.style.backgroundColor=FormFieldArray[pos]['style'];
          }
        }
        return result;
  }


function chkFormular(){
        // Alle Änderungen an den Sytsel rückgängig machen
	var i=0;
	while(i < currentElement){
		if (FormFieldArray[i]['style']!="none"){
			var myElement=document.getElementById(FormFieldArray[i]['id']);
			myElement.style.backgroundColor=FormFieldArray[i]['style'];
		}
		i++;
	}
	i=0;
	while(i < currentElement){
		var id=FormFieldArray[i]['id'];
		var type=FormFieldArray[i]['type'];
		var text=FormFieldArray[i]['text'];
		var myLength=FormFieldArray[i]['length'];
		var myRequired=FormFieldArray[i]['required'];	
		var myDef=FormFieldArray[i]['default'];			
		checked = checkField(id,type,text,myLength,i,myRequired,myDef);
		if (!checked) return checked;
		i++;
	}
	return true;
}

function addFormField(id,type,text,length,required,def){
	
	var temp = new Array(5);
	temp['id']=id;
	temp['type']=type;
	temp['text']=text;
	temp['length']=length;
	temp['style']="none";
	temp['required']=required;
	temp['default']=def;
	if (def){
		setDefaultValue(id,def);
	}
	FormFieldArray[currentElement]=temp;
	currentElement++;	
}

function setDefaultValue(element,value){
	elem=document.getElementById(element)
	// Initial das Feld füllen (wenn leer)
	if (trim(elem.value)==""){
		elem.value=value;
	}
	Event.observe(elem, 'focus', function(event){
		if (trim(Event.element(event).value)==value){
			Event.element(event).value="";
		}		
	});	
	Event.observe(elem, 'blur', function(event){
		if (trim(Event.element(event).value)==""){
			Event.element(event).value=value;
		}
	});
}

function trim (str) {
	var	str = str.replace(/^\s\s*/, ''),
		ws = /\s/,
		i = str.length;
	while (ws.test(str.charAt(--i)));
	return str.slice(0, i + 1);
}

  String.prototype.trim = strtrim;
