// Select-Felder dynamisch generieren
function chooseMake(fquelle,fziel,db,reset)
{
        var list; 
        var pos,n,i;
        var content;
		var index;
		if(reset) {
		 var selectedIndex_old = 0;
		 selectedIndex_old = fziel.selectedIndex;
		}
				
        fziel.selectedIndex = 0;
        fziel.options.length = 1;

 //Check, ob Index direkt angegeben wurde
 if(isNaN(fquelle) == true) {

  if(fquelle.type != "select-one" && fquelle.type != "text") {
   for(i = 0; i < fquelle.length; i++) {
    if(fquelle[i].checked == true) {
 	 index = i+1;
    }
   }
  } else {
   index = fquelle.selectedIndex;
  }        

 } else {
  index = Number(fquelle);
 }
 
        if (index > 0)
        {
                list = db[index];
                pos = 0;
                i = 1;
                n = list.indexOf(';',pos);
                while (n > 0)
                {
                        content = list.substr(pos, n-pos);
                        
                        i++;
                        fziel.options.length = i;
                        fziel.options[i-1].value = content;
                        fziel.options[i-1].text = content;

                        pos = n + 1;
                        n = list.indexOf(';',pos);
                }
        }
 if(reset) {
  fziel.selectedIndex = selectedIndex_old;
 }
}

function chooseMake2(fquelle,fziel,db)
{
        var list; 
        var pos,n,i;
        var content;
		var index;
		
        fziel.selectedIndex = 0;
        fziel.options.length = 1;

 if(fquelle.type != "select-one" && fquelle.type != "text") {
  for(i = 0; i < fquelle.length; i++) {
   if(fquelle[i].checked == true) {
	index = i+1;
   }
  }
 } else {
  index = fquelle.selectedIndex;
 }        

        if (index > 0)
        {
                list = db[index];
                pos = 0;
                i = 1;
                n = list.indexOf(';',pos);
                while (n > 0)
                {
                        content = list.substr(pos, n-pos);
                        
                        i++;
                        fziel.options.length = i;
                        fziel.options[i-1].value = content;

                        pos = n + 1;
                        n = list.indexOf(';',pos);
                        content = list.substr(pos, n-pos);
                        fziel.options[i-1].text = content;

                        pos = n + 1;
                        n = list.indexOf(';',pos);
                }
        }
}

// Select-Felder dynamisch generieren, aber text und value sind unterschiedlich
function chooseMakeTextValue(fquelle,fziel,db,fzzeile1,fqzeile1,wechsel,reset)
{
        var list; 
        var pos,n,i;
        var content;
		var index;
		if(reset) {
		 var selectedIndex_old = 0;
		 selectedIndex_old = fziel.selectedIndex;
		}

		
        fziel.selectedIndex = 0;
        fziel.options.length = 1;

 //Check, ob Index direkt angegeben wurde
 if(isNaN(fquelle) == true) {

  if(fquelle.type != "select-one" && fquelle.type != "text") {
   for(i = 0; i < fquelle.length; i++) {
    if(fquelle[i].checked == true) {
 	 index = i+1;
    }
   }
  } else {
   index = fquelle.selectedIndex;
  }        

 } else {
  index = Number(fquelle);
 }


//        if (index > 0)
//        {
                list = db[index];
                pos = 0;
                n = list.indexOf(';',pos);
				//new, falls 1. Zeile auch gefuellt werden soll
				if(fzzeile1) {
				 i = 0;
				} else {
				 i = 1;
				}
				//end_new

                while (n > 0)
                {
                        content = list.substr(pos, n-pos);

						//new
					    var textvalue = new Array("");
						textvalue = content.split(":");
						//end_new                        
                        i++;
                        fziel.options.length = i;

						if(wechsel) {
						 //new
                         fziel.options[i-1].text = textvalue[1];
                         fziel.options[i-1].value = textvalue[0];
						 //end_new
						} else {
						 //new
                         fziel.options[i-1].text = textvalue[0];
                         fziel.options[i-1].value = textvalue[1];
						 //end_new
						}
						
                        pos = n + 1;
                        n = list.indexOf(';',pos);
                }
//        }
 if(reset) {
  fziel.selectedIndex = selectedIndex_old;
 }
}

function mark(Obj,OnOff) {
 Obj = objref(Obj);
 if(isNaN(Obj.length) == false) {
  for(i=0;i<=Obj.length-1;i++) {
   if(Obj[i].checked == true && OnOff == 0) {
    Obj[i].checked = false;
   }
   if(Obj[i].checked == false && OnOff == 1) {
	Obj[i].checked = true;
   }
  }
 }
 if(isNaN(Obj.length) == true) {
  if(Obj.checked == true && OnOff == 0) {
   Obj.checked = false;
  }
  if(Obj.checked == false && OnOff == 1) {
   Obj.checked = true;
  }
 }
}

function objref(Obj) {
 if (navigator.appName=='Netscape') {
  if(Number(navigator.appVersion.substring(0,1)) < 5) {
   //layer
   if(isNaN(document.layers.length) == false) {
    for(i=0;i<=document.layers.length-1;i++) {
     if(isNaN(document.layers[i].document.forms.length) == false) {
	  for(j=0;j<=document.layers[i].document.forms.length-1;j++) {	    
	   formname = Obj.split('.');
	   if(document.layers[i].document.forms[j].name == formname[1]) {
		if(isNaN(document.layers[i].document.forms[j].elements.length) == false) {		  
		 for(k=0;k<=document.layers[i].document.forms[j].elements.length-1;k++) {
		  if(document.layers[i].document.forms[j].elements[k].name == formname[2]) {
		   Obj = 'document.'+document.layers[i].name+'.document.'+document.layers[i].document.forms[j].name+'.'+document.layers[i].document.forms[j].elements[k].name;
		  }   
		 }		   															  
		}
	   }
	  }
	 }
	}
   }
  }
 }
 return eval(Obj);
}

//liefert alle Formularnamen (auch aus Layern)
function getformref() {
 var formref = new Array();
 var counter = 0;
 if (navigator.appName=='Netscape') {
  if(Number(navigator.appVersion.substring(0,1)) < 5) {
   //layer
   if(isNaN(document.layers.length) == false) {
    for(i=0;i<=document.layers.length-1;i++) {
     if(isNaN(document.layers[i].document.forms.length) == false) {
	  for(j=0;j<=document.layers[i].document.forms.length-1;j++) {	    
	   formref[counter] = 'document.'+document.layers[i].name+'.document.'+document.layers[i].document.forms[j].name;
	   counter++;
	  }
	 }
	}
   }
  }
 }
 if(isNaN(document.forms.length) == false) {
  for(j=0;j<=document.forms.length-1;j++) {	    
   formref[counter] = 'document.'+document.forms[j].name;
   counter++;
  }
 }
 return(formref);
}

function cleanFields(sourcestring,targetstring,sourcestring2) {
	var formref = getformref();
	if(isNaN(formref.length) == false) {
		for(i=0;i<=formref.length-1;i++) {
			var formname = objref(formref[i]);
			for(j=0;j<=formname.elements.length-1;j++) {
				if(formname.elements[j].name.search(sourcestring) != -1) {
					var searchchar = formname.elements[j].name.substring(formname.elements[j].name.length-1,formname.elements[j].name.length)+'$';
					for(k=0;k<=formname.elements.length-1;k++) {
						if(formname.elements[k].name.search(targetstring) != -1) {
							if(formname.elements[k].name.search(searchchar) != -1) {
								if(formname.elements[j].value == '') {
									if(sourcestring2) {
										for(m=0;m<=formname.elements.length-1;m++) {
											if(formname.elements[m].name.search(sourcestring2) != -1 && formname.elements[m].name.search(searchchar) != -1) {
												if(formname.elements[m].name != formname.elements[j].name) {
													if(formname.elements[m].value == '') {
														formname.elements[k].value = '';
													}
												}
											}
										}
									} else {
										formname.elements[k].value = '';
									}
								}
							}
						}
					}
				}
			}
		}
	}
}

function parseFields(sourcestring,targetstring,obj) {
	if(obj) {
		if(obj.value.search(sourcestring) != -1) {
			var tempstring = obj.value.replace(sourcestring,targetstring);
			obj.value = tempstring;
		}
	} else {
		var formref = getformref();
		if(isNaN(formref.length) == false) {
			for(i=0;i<=formref.length-1;i++) {
				var formname = objref(formref[i]);
				for(j=0;j<=formname.elements.length-1;j++) {
					if(formname.elements[j].value.search(sourcestring) != -1) {
						var tempstring = formname.elements[j].value.replace(sourcestring,targetstring);
						formname.elements[j].value = tempstring;
					}
				}
			}
		}
	}
}

