/*
Formular-Feldfunctions
2004-08-24
Dieter Siebeck
Copyright (c) 2004 Zaunz Publishing. All Rights Reserved.
*/

function formLib_clearField(form, fieldname){
    formLib_setField(form, fieldname,"");    
}



function formLib_setField(form, fieldname,value){
    var field = form[fieldname];
    if(typeof(field) == "undefined"){
        alert(fieldname + " undefined!");
        return;
    }
    switch(field.type){
		case "radio":
			formLib_setRadio(field,value);
			return;
  		case "select-one":
  			formLib_setSelect(field,value);
  			return;
  		case "text":
			field.value=value;
			return;
		case "hidden":
			field.value=value;
			return;
  		case "textarea":
			field.value=value;
			return;
  		case "checkbox":
			field.checked=(value)?true:false;
			return;
  		default: 
  			//sollte eigentlich nicht vorkommen!!
			alert(field.type + ": not implemented!");

	}
        
}

function formLib_setRadio(radio, value){
    var i;
    for(i=0;i<radio.length;i++){
		//alert(i + ": "+radio[i].value);
		if(radio[i].value == value){
			radio[i].checked = true;
			return;
		}
	}    
}

function formLib_setSelect(select, value){
    var i,option;
    
    for(i=0;i<select.length;i++){
		option = select.options[i];
		if(select.options[i].value == value){
			select.options[i].selected = true;
			return;
		}
	}    
}

function formLib_setSelect_ByText(select, value){
    var i,option;
    for(i=0;i<select.length;i++){
		option = select.options[i];
		if(select.options[i].text == value){
			select.options[i].selected = true;
			return;
		}
	}    
}

function formLib_setFieldDefault(form, fieldname){
    var field = form[fieldname];
    if(typeof(field) == "undefined"){
        alert(fieldname + " undefined!");
        return;
    }
    switch(field.type){
		case "radio":
			formLib_setRadioDefault(field);
			return;
  		case "select-one":
  			formLib_setSelectDefault(field);
  			return;
  		case "text":
			if(field.defaultValue)field.value=field.defaultValue;
			return;
		case "hidden":
			if(field.defaultValue)field.value=field.defaultValue;
			return;
  		case "textarea":
			if(field.defaultValue)field.value=field.defaultValue;
			return;
  		case "checkbox":
			field.checked=field.defaultChecked;
			return;
  		default: 
  			//sollte eigentlich nicht vorkommen!!
			alert(field.type + ": not implemented!");

	}
}

function formLib_setRadioDefault(radio, value){
    var i;
    for(i=0;i<radio.length;i++){
		//alert(i + ": "+radio[i].value);
		if(radio[i].defaultChecked && radio[i].value){
			radio[i].checked = true;
			return;
		}
	}    
}

function formLib_setSelectDefault(select, value){
    var i,option;
    for(i=0;i<select.length;i++){
		if(select.options[i].defaultSelected && select.options[i].value){
			select.options[i].selected = true;
			return;
		}
	}    
}
/*Hilfsfunktion: erzeugt aus einem Integer-Array ein assoc. Hash, in dem Shl�ssel und werte gleich sind
*/
function formLib_getOptionHashFromArray(option_array){
    var option_hash = {};
    var i;
    for(i=0;i<option_array.length;i++){
        option_hash[option_array[i]] =option_array[i];    
    }
    return option_hash;
}

function formLib_setOptions(select, optArr,selVal){
	
	select.options.length = (select.type!='select-multiple' && select.options[0] && select.options[0].value=='')?1:0;
	var id, op;
	//alert(typeof(selVal));
	var selectedValues = selVal;
	if(typeof(selVal) != "object"){
	    selectedValues = new Object();
	    selectedValues[selVal]=true;
	}
	
	var s=0;
	for(id in optArr)s++;
	if(s==0){
	     optArr = {0:'keine Datens�tze verf�gbar'};   
	}
	       
	for(id in optArr){
		op = new Option(optArr[id],id);
		op.selected = (selectedValues[id])?true:false;
		select.options[select.length] = op;
	};
	fireEvent(select,"onchange");
	
}

function fireEvent(sourceObj,evtType){
    
    if(sourceObj.fireEvent){
        sourceObj.fireEvent(evtType);
    }else{
        var evt = document.createEvent('HTMLEvents');
	    evt.initEvent(evtType,true,true);
	    sourceObj.dispatchEvent(evt);   
    }	
}

function onlyNumbers(evt){
 	var charCode = getInputCharCode(evt);
	if(charCode == 45) return true; //strich
	if(charCode > 13 &&(charCode < 48 || charCode > 57)){
		//alert(charCode);
		return false;
	}
}
function onlyFloat(evt){
 	var charCode = getInputCharCode(evt);
	if(charCode == 44 || charCode == 45 || charCode == 46)return true;//punkt, strich +komma
	if(charCode > 13 &&(charCode < 48 || charCode > 57)){
		return false;
	}
}

function getInputCharCode(evt){
	evt = (evt)? evt: event;
	if(evt){	
	var charCode = (evt.charCode || evt.charCode == 0) ? evt.charCode :
	((evt.keyCode) ? evt.keyCode : evt.which);
	//alert(charCode)
	return charCode;
	}
	return "";
}

function hide_submit_buttons(){
    document.getElementById('submit_button_1').style.display = "none";
    document.getElementById('submit_button_2').style.display = "none";
}
