//
// (c) 2000-2002 JAWA Management Software GmbH
//
// $Id: itk_js.js 4885 2009-03-23 10:04:47Z mpetelin $
//

var itk_browser_rueckgabewerte = new Array;
var itk_browser_rueckgabe;

var itk_formelement_ref = null;
var itk_zoom_fenster = null;

var itk_formelemente_refs = new Array;
var itk_rueckgabewerte = new Array;
var itk_fenster = null;

var itk_calendars = new Array;

var itk_sections = new Array;

   
/**
 * JS Lib der allgemeinen Inforum Funktionen 
*/   

var ITK_JSLib = new Object( {
	
	inArray: function(array, needle) {
		for(var i=0; i < array.length; i++) 
			if(array[ i] === needle) return true;
		return false;
	},
	
	AddEvent: function (obj, eventType, funktion, useCaption){
	    if (obj.addEventListener) {
	        obj.addEventListener(eventType, funktion, useCaption);
	        return true;
	    }
	    else 
	        if (obj.attachEvent) {
	            var retVal = obj.attachEvent("on" + eventType, funktion);
	            return retVal;
	        }
	        else {
	            return false;
	        }
	},
	WindowsAddEvent: function(eventType, funktion) {
	
		if (window.addEventListener) {
			window.addEventListener(eventType, funktion, false);
	       	return true;
	    }
	
	    if (window.attachEvent) {
	    	var retVal = window.attachEvent("on" + eventType, funktion);
	        return retVal;
	    }
	}
	
});
    

function itk_calendar(formname, formelemname, image) {
	elem = document.forms[formname].elements[formelemname];
	itk_calendars[itk_calendars.length] = new dynCalendar('itk_calendars[' + itk_calendars.length + ']', 'setDateFromCalendar', elem, image);
}

function itk_browser_rueckgabe_ermitteln(form_id, sep) {
    var werte;

    if (itk_browser_rueckgabe) {
        for (z=2; z < arguments.length; z++) {
            werte = '';
            if (typeof(itk_browser_rueckgabe) == 'object') {
            
                for (x=0; x < itk_browser_rueckgabe.length; x++) {
                    if (itk_browser_rueckgabe[x]) {
                        elemname = arguments[z] + '[' + x + ']';        
                        elem = document.forms[form_id].elements[elemname];
                        if (werte) werte = werte + sep;
                        werte = werte + elem.value;
                    }
                }
                
            } else {
                elemname = arguments[z] + '[' + itk_browser_rueckgabe + ']';        
                elem = document.forms[form_id].elements[elemname];
                werte = elem.value;
            }
            
            itk_browser_rueckgabewerte[z - 2] = werte;
            
        }
    }
}

function itk_browserfelder_verwerfen(form_id) { 

    for (k = 1; k < arguments.length; k++) {
        elemname = arguments[k];
        if (document.forms[form_id].elements[elemname])
            document.forms[form_id].elements[elemname].value = '';
    }

}

function itk_formelement_by_name(formelem_name) {
    formelem = null;

    for (i=0; i < document.forms.length; i++) {
        form_ref = document.forms[i];

        for (e=0; e < form_ref.elements.length; e++) {
            if(form_ref.elements[e].name == formelem_name) {
                formelem = form_ref.elements[e];
                break;
            }
        }

        if (formelem != null) break;
    }

    return formelem;
}

function itk_form_by_name(form_name) {

    for (i=0; i < document.forms.length; i++) {
        if (document.forms[i].name == form_name) return document.forms[i];
    }

    return null;
}

function itk_zoom_fenster_uebernehmen(formelement_ref) {

    if(itk_formelement_ref) {
        itk_formelement_ref.value = formelement_ref.value;
        res = itk_formelement_ref.name.search(/\[([0-9]+)\]$/);

        if (res != -1) {
            itk_tabelleneingabe_geaendert(itk_formelement_ref.form,RegExp.$1);
        }

        itk_zoom_fenster = null;
    }
}

function itk_tabelleneingabe_geaendert(form_ref, zeile_nr, elemname) {
	if (elemname == null) {
		elemname = 'itk_zeile_nr[]';
	}

    checkbox_ref = form_ref[elemname][zeile_nr];
    if (checkbox_ref == null) {
        checkbox_ref = form_ref[elemname]
    };

    if (checkbox_ref) checkbox_ref.checked = true;
    checkbox_ref = null;
}

function itk_select_leeren(ref_select) {
    anz = ref_select.options.length;

    for(i = 0; i < anz; i++) {
        ref_select.options[0] = null;
    }

}

function itk_select_optionen_setzen(ref_select, optionsliste) {

    for(i = 0; i<optionsliste.length; i++) {
        neue_option = new Option(optionsliste[i]);
        if (arguments[2]) {
			neue_option.label = arguments[2][i];
			neue_option.text = arguments[2][i];
			neue_option.value = optionsliste[i];
		}
        ref_select.options[i] = neue_option;
    }

}

function itk_select_selektionen(ref_select) {
    var selektionen = new Array;
    k = 0;

    for(i=0; i < ref_select.options.length; i++) {
        if(ref_select.options[i].selected) {
			selektionen[k] = ref_select.options[i].value;
            k++;
        }
    }

    return selektionen;
}

function itk_select_selektieren(ref_select, wert) {

    for(i = 0; i < ref_select.options.length; i++) {

        if(ref_select.options[i].value == wert) {
            ref_select.selectedIndex = i;
        }

        if(ref_select.options[i].text == wert) {
            ref_select.selectedIndex = i;
        }

    }

}

//in array arguments can be also argument in order halign, valign, toolbar
function itk_fenster_oeffnen(titel, seite, e, breite, hoehe, resizeable, scrollbars, neu) {
    if (!resizeable) resizeable = "no";
    if (resizeable == "yes") {
        dependent = "no"
    } else {
        dependent = "yes";
    }

    halign = "center";
    valign = "center";
    toolbar = "no";
    status = "no";
    for (k = 7; k < arguments.length; k++) {
        if (k == 7) halign = arguments[k];
        if (k == 8) valign = arguments[k];
        if (k == 9) toolbar = arguments[k];
        if (k == 10) status = arguments[k];
    }
    if (toolbar != "yes") {
        toolbar = "no";
    }

    if (status != "yes") {
        status = "no";
    }

    if (hoehe == 0) {
        hoehe = screen.availHeight-24;
        oben = 0;
    } else if (hoehe < 0) {
        hoehe = screen.availHeight + hoehe;
        oben = Math.round((screen.availHeight - hoehe) / 2);
    } else {

        switch (valign) {
            case "top":
                oben = 0;
                break;
            case "bottom":
                oben = screen.availHeight - hoehe;
                break;
            default:
                oben = Math.round((screen.availHeight - hoehe) / 2 - 30);
				if (oben < 0) oben = 0;
		}

    }
    if (breite == 0) {
       breite = screen.availWidth-12;
       links = 0;
    } else if (breite < 0) {
        breite = screen.availWidth + breite;
        links = Math.round((screen.width - breite) / 2);
     } else {
       switch (halign) {
            case "left":
                links = 12;
                break;
            case "right":
                links = screen.width - breite - 12;
                if (links < 0) links = 0;
                break;
            case "center":
            default:
                 links = Math.round((screen.width - breite) / 2);
      }
    }

    if (!scrollbars) scrollbars = "no";
    var fenster_attr = "resizable=" + resizeable +
                       ",scrollbars=" + scrollbars +
                       ",dependent=" + dependent +
                       ",status=" + status +
                       ",toolbar=" + toolbar +
                       ",menubar=no" +
                       ",left=" + links +
                       ",top=" + oben +
                       ",width=" + breite + ",height=" + hoehe +
                       ",innerWidth=" + breite + ",innerHeight=" + hoehe ;

    z = 0;

    for (k=7; k < arguments.length; k++) {
        itk_formelemente_refs[z] = itk_formelement_by_name(arguments[k]);
        z++;
    }

    if (itk_fenster) 
        if (itk_fenster.closed) {
            itk_fenster = null;
        }

    if (itk_fenster && !neu) itk_fenster.close();

    if (neu) {
        return open(seite, titel, fenster_attr);
    } else {
        itk_fenster = open(seite, titel, fenster_attr);
        return itk_fenster;
    }
}

function itk_zugriffslisten_oeffnen(titel, seite, zeile_nr, e, breite, hoehe, gruppen_acl, rollen_acl) {
    select_form_id = itk_formelement_by_name('objekt_id[' + zeile_nr + ']');
	if (seite.indexOf('?') > 0) {
		link = seite + '&objekt_id=';
	} else {
    	link = seite + '?objekt_id=';
    }
    link = link + select_form_id.options[select_form_id.selectedIndex].value;
    itk_fenster_oeffnen(titel, link, e, breite, hoehe, "no", "no", gruppen_acl, rollen_acl);
}

function itk_fenster_schliessen(rueckgabewerte) {
	
    if(rueckgabewerte != null) {
		
        for(i = 0; i < rueckgabewerte.length; i++) {
			
            if (itk_formelemente_refs[i]) {
                if (arguments[1] == true) {
                    itk_formelemente_refs[i].value = itk_formelemente_refs[i].value + rueckgabewerte[i];
                } else {
                    itk_formelemente_refs[i].value = rueckgabewerte[i];					
                }
                if (itk_formelemente_refs[i].onchange) itk_formelemente_refs[i].onchange();
                res = itk_formelemente_refs[i].name.search(/\[([0-9]+)\]$/);

                if (res != -1) {					
					// workaround fï¿½r tabelleneingabeformulare in subformularen
					// itk_tabelleneingabe_geaendert(itk_formelemente_refs[i].form,RegExp.$1);
                }

            }

        }

    }

    itk_fenster = null;
}


function itk_fenster_schliessen_hinzufuegen(rueckgabewerte, seperator) {

    if(rueckgabewerte != null) {

        for(i = 0; i < rueckgabewerte.length; i++) {

            if (itk_formelemente_refs[i]) {
				if (seperator != null)
				{
					itk_formelemente_refs[i].value = itk_formelemente_refs[i].value + rueckgabewerte[i] + seperator;
				} else {
	                itk_formelemente_refs[i].value = itk_formelemente_refs[i].value + rueckgabewerte[i];
				}
                if (itk_formelemente_refs[i].onchange) itk_formelemente_refs[i].onchange();
                res = itk_formelemente_refs[i].name.search(/\[([0-9]+)\]$/);
                if (res != -1) {
                    itk_tabelleneingabe_geaendert(itk_formelemente_refs[i].form,RegExp.$1);
                }

            }

        }

    }
    itk_fenster = null;
}



function itk_setze_auswahlcheckboxen(f, checked, anzahl_angezeigt, elemname) {
	if (elemname == null) {
		elemname = 'itk_zeile_nr[]';
	}
    len = f.length;
    a = 1;
    for (i = 0; i < len; i++) if (f.elements[i].name == elemname) {
        if (a > anzahl_angezeigt) return;
        f.elements[i].checked = checked;
        a++;
    }
}

function itk_entzerre_email(obj) {
    maillink = obj.href.replace(/^.+#/, 'mailto:');
    obj.href = maillink.replace(/ at /, '@');
}

function itk_feldfilter(evnt, regex) {
    var theChar="", theRegExp=/[0-9,\010]/, bFound=false;

    if(document.all) {
        evnt=window.event;
        theChar=String.fromCharCode(evnt.keyCode);
        if(!evnt.shiftKey) theChar=theChar.toLowerCase();
        bFound=regex.test(theChar);
        evnt.returnValue=bFound;
    } else if (document.layers) {
        theChar=String.fromCharCode(evnt.which);
        bFound=regex.test(theChar)
    } else {
        theChar = String.fromCharCode(evnt.charCode);
        bFound = (evnt.keyCode!=0) || regex.test(theChar);
        evnt.cancelBubble=!bFound;
    }
    return bFound;
}

function resize_to(x,y) {
    if (y > 0) {
        height = y;
    } else {
        height = screen.availHeight-20;
    }
    if (x > 0) {
        width = x;
    } else {
        width = screen.availWidth;
    }
    window.resizeTo(width, height);
    return true;
}

function move_to(x,y) {
    window.moveTo(x, y);
    return true;
}

function itk_zoom_fenster_anzeigen(formelementname, e, style, bgcolor, img_pfad, links) {
	itk_formelement_ref = itk_formelement_by_name(formelementname);

    if (itk_zoom_fenster && itk_zoom_fenster.closed) {
    	itk_zoom_fenster = null;
    }

    if (!itk_zoom_fenster) {
		itk_zoom_fenster = itk_fenster_oeffnen(_('Zoom'), "", e, 640, 480);
		itk_zoom_fenster.document.open();
		itk_zoom_fenster.document.writeln('<html><head><title>' + _('Zoom') + '</title>');
		if (style) itk_zoom_fenster.document.writeln('<link rel="stylesheet" type="text/css" href="' + style + '">');
		itk_zoom_fenster.document.writeln('</head>');
		itk_zoom_fenster.document.writeln('<body bgcolor="' + bgcolor + '">');
		itk_zoom_fenster.document.writeln('<div align="center">');
		itk_zoom_fenster.document.writeln('<form name="dummy">');
		itk_zoom_fenster.document.writeln('<table><tr><td class="ffldi">');
		itk_zoom_fenster.document.writeln('<textarea name="itk_zoom_text" cols="90" rows="30" wrap="virtual">');
		itk_zoom_fenster.document.writeln(itk_formelement_ref.value);
		itk_zoom_fenster.document.writeln('</textarea>');
		itk_zoom_fenster.document.writeln('</td></tr><tr><td class="flbl">');
		itk_zoom_fenster.document.writeln('<input type="hidden" name="chk_konvert_cr" value="1">');
		itk_zoom_fenster.document.writeln('</td></tr></table>');
		itk_zoom_fenster.document.writeln('<table width="80%"><tr><td width="40%" align="left">');

    	if (links) {
			itk_zoom_fenster.document.writeln('<a class="aktion" href="" onClick="opener.itk_zoom_fenster_uebernehmen(document.dummy.itk_zoom_text); window.close();return false;"><img src="' + img_pfad + 'aktion_uebernehmen.gif" border="0">' + _('&Uuml;bernehmen') + '</a>');
    	  	itk_zoom_fenster.document.writeln('</td><td width="40%" align="right">');
			itk_zoom_fenster.document.writeln('<a class="aktion" href="" onClick="window.close();return false;"><img src="' + img_pfad + 'aktion_abbrechen.gif" border="0">' + _('Abbrechen') + '</a>');
	    } else {
			itk_zoom_fenster.document.writeln('<input type="submit" name="uebernehmen" value="' + _('&Uuml;bernehmen') + '" onClick="opener.itk_zoom_fenster_uebernehmen(this.form.itk_zoom_text); window.close();return false;">');
      		itk_zoom_fenster.document.writeln('</td><td width="40%" align="right">');
			itk_zoom_fenster.document.writeln('<input type="submit" name="abbrechen" value="' + _('Abbrechen') + '" onClick="window.close();return false;">');
    	}

   		itk_zoom_fenster.document.writeln('</td></tr></table>');
		itk_zoom_fenster.document.writeln('</form>');
		itk_zoom_fenster.document.writeln('</div>');
		itk_zoom_fenster.document.writeln('</body></html>');
		itk_zoom_fenster.document.close();
	} else {
		itk_zoom_fenster.document.forms[0].itk_zoom_text.value = itk_formelement_ref.value;
	}

	itk_zoom_fenster.focus();

	if (itk_zoom_fenster.document.forms[0]) {
		itk_zoom_fenster.document.forms[0].itk_zoom_text.focus();
	}

}

function itk_preview_fenster_oeffnen(content, titel, width, height, e, style, bgcolor, img_pfad, links) {
    if (itk_fenster) if (itk_fenster.closed) {
    	itk_fenster = null;
    }

    if (!itk_fenster) {
		itk_fenster = itk_fenster_oeffnen(titel, "", e, width, height, 1, 1);
		itk_fenster.document.open();
		itk_fenster.document.writeln('<html><head><title>' + titel + '</title>');

		if (style) itk_fenster.document.writeln('<link rel="stylesheet" type="text/css" href="' + style + '">');
		itk_fenster.document.writeln('</head>');
		itk_fenster.document.writeln('<body bgcolor="' + bgcolor + '">');
		itk_fenster.document.writeln('<div align="center">');
		itk_fenster.document.writeln('<form name="dummy">');

		itk_fenster.document.writeln('<table widht="100%"><tr><td>');

		itk_fenster.document.writeln(content);

		itk_fenster.document.writeln('</td></tr></table>');

		itk_fenster.document.writeln('<table align="center"><tr><td>');
    	if(links) {
			itk_fenster.document.writeln('<a class="aktion" href="" onClick="window.close();return false;"><img src="' + img_pfad + 'aktion_abbrechen.gif" border="0">' + _('Abbrechen') + '</a>');
	    } else {
			itk_fenster.document.writeln('<input type="submit" name="abbrechen" value="' + _('Abbrechen') + '" onClick="window.close();return false;">');
    	}

   		itk_fenster.document.writeln('</td></tr></table>');
		itk_fenster.document.writeln('</form>');
		itk_fenster.document.writeln('</div>');
		itk_fenster.document.writeln('</body></html>');
		itk_fenster.document.close();
	}

	itk_fenster.focus();
}

function itk_hilfe_fenster_anzeigen(url, ev) {
	itk_fenster_oeffnen(_('Hilfe'), url, ev, 800, 600, "yes", "yes");
	itk_fenster.focus();
}

function itk_verwische_feld(formelem_ref) {
	var str = '';
	for(i = 0; i < formelem_ref.value.length; i++) str += '*';
	formelem_ref.value = str;
}

function itk_swap_content(form_id, elemname, link, label, label_ein, label_aus, spanid) {
	var elem;
	if (!document.getElementById) return false;
	elem = document.getElementById(spanid);
	if (elem.style.display == 'none') {
		elem.style.display = 'block';
		link.firstChild.nodeValue = label + ' ' + label_ein;
		document.forms[form_id].elements[elemname].value = '1';
	} else {
		elem.style.display = 'none';
		link.firstChild.nodeValue = label + ' ' + label_aus;
		document.forms[form_id].elements[elemname].value = '0';
	}
	return true;
}

function itk_switch_span(obj) {

	if (document.getElementById(obj).style.display == 'block'){
		document.getElementById(obj).style.display = 'none';
	} else {
		document.getElementById(obj).style.display = 'block';
	}

	return false;
}

function itk_char_count(f, maxlength, spanid)
{       
	var input = f.value.length;
                        
	if (input > maxlength) {
		f.value = f.value.substring(0,maxlength-1);
		input = maxlength;
	}

	if (!document.getElementById) {
		return false;
	} else {                        
		document.getElementById(spanid).firstChild.data = '[' + input + '/' + maxlength +']';
	}

}

function itk_feldfilter_replace(formelement, regex, replace) {    
	var text;
	
	text = formelement.value;
	formelement.value = text.replace(regex, replace);
    return true;
}

// dummy Funktion damit der Fehler beim Login nicht kommt.
function itk_md5_challenge()
{
	return true;
}

/**
 * Objekt Ein und Ausblenden von elementen
*/

function Explorer() { 
	this.image_prefix = "collapseimg_";
	this.image_postfix = "_collapsed";
	this.image_type = ".gif";

	this.browser_check = function browser_check()
	{
		if (!document.getElementById) return false;	

		return true;
	}	

	this.itk_explorer = function itk_explorer(form_id, span_id)
	{		
		if (!this.browser_check())
		{
			return false;
		}

		var img = document.getElementById(this.image_prefix + span_id);
		var obj = document.getElementById(span_id);	
		
		if (obj == null) return;

		if (obj.tagName == "TBODY" && is_ie == false)
		{
			var diplay_code_block = "table-row-group";
		} else {
			var diplay_code_block = "block";
		}

		if (obj.style.display == "none")
		{

			obj.style.display = diplay_code_block;
			if (img)
			{
				img_re = new RegExp(this.image_postfix + "\\" + this.image_type + "$");
				img.src = img.src.replace(img_re, this.image_type);
			}		
		}
		else
		{
			obj.style.display = "none";
			if (img)
			{
				img_re = new RegExp("\\" + this.image_type + "$");
				img.src = img.src.replace(img_re, this.image_postfix + this.image_type);
			}		
		}

		this.itk_save_explorer(form_id, span_id, obj.style.display);
	}

	this.itk_explorer_open = function itk_explorer_open(form_id, span_ids)
	{		
		if (!this.browser_check()) return false;

		for (i = 0; i < span_ids.length; ++i)
		{			
			var span_id = span_ids[i];
			var img = document.getElementById("collapseimg_" + span_id);
			var obj = document.getElementById(span_id);	

			if (obj == null) return;
			
			if (obj.tagName == "TBODY" && is_ie == false)
			{
				var diplay_code_block = "table-row-group";
			} else {
				var diplay_code_block = "block";
			}

			if (obj.style.display == "none")
			{
				obj.style.display = diplay_code_block;

				if (img)
				{
					img_re = new RegExp("_collapsed\\.gif$");
					img.src = img.src.replace(img_re, '.gif');
				}		
			}
		}	
		
		this.itk_save_explorer_spans(form_id, span_ids, obj.style.display);
	}

	this.itk_explorer_close = function itk_explorer_close(form_id, span_ids)
	{		
		if (!this.browser_check()) return false;

		for (i = 0; i < span_ids.length; ++i)
		{
			var span_id = span_ids[i];
			var img = document.getElementById("collapseimg_" + span_id);
			var obj = document.getElementById(span_id);	
			
			if (obj == null) return;

			if (obj.style.display == "" || obj.style.display == "table-row-group" || obj.style.display == "block")
			{
				obj.style.display = "none";
				if (img)
				{
					img_re = new RegExp("\\.gif$");
					img.src = img.src.replace(img_re, '_collapsed.gif');
				}		
	
			}			
		}	

		this.itk_save_explorer_spans(form_id, span_ids, obj.style.display);
	}

	this.itk_save_explorer_spans = function itk_save_spans(form_id, objids, addcollapsed)
	{
		var collapsed = itk_fetch_cookie("itk_" + form_id);		
		var tmp = new Array();
		var objid = null;
		
		if (collapsed != null)
		{
			collapsed = collapsed.split("\n");
			
			for (i in collapsed)
			{
				var add = true;
				
				for (ii in objids) {
					objid = objids[ii];
					if (collapsed[i] == objid || collapsed[i] == "")
					{
						add = false;
					}
				}
				
				if (add) tmp[tmp.length] = collapsed[i];
			}
		}

		if (addcollapsed != 'none')
		{
			for (ii in objids) {
				objid = objids[ii];
			 	tmp[tmp.length] = objid;
			}
		}
			
		this.itk_set_cookie("itk_" + form_id, tmp.join("\n"));
	}

	this.itk_save_explorer = function itk_save_explorer(form_id, objid, addcollapsed)
	{
		var collapsed = itk_fetch_cookie("itk_" + form_id);		
		var tmp = new Array();
		
		if (collapsed != null)
		{
			collapsed = collapsed.split("\n");
			
			for (i in collapsed)
			{
				if (collapsed[i] != objid && collapsed[i] != "")
				{
					tmp[tmp.length] = collapsed[i];
				}
			}
		}

		if (addcollapsed != 'none')
		{
			tmp[tmp.length] = objid;
		}
			
		this.itk_set_cookie("itk_" + form_id, tmp.join("\n"));
	}
	
	this.itk_fetch_cookie = function itk_fetch_cookie(name)
	{
		var cookie_name = name + "=";
		var cookie_length = document.cookie.length;
		var cookie_begin = 0;
	
	
		while (cookie_begin < cookie_length)
		{
			var value_begin = cookie_begin + cookie_name.length;
	
			if (document.cookie.substring(cookie_begin, value_begin) == cookie_name)
			{
				var value_end = document.cookie.indexOf (";", value_begin);
				if (value_end == -1)
				{
					value_end = cookie_length;
				}
				return unescape(document.cookie.substring(value_begin, value_end));
			}
			cookie_begin = document.cookie.indexOf(" ", cookie_begin) + 1;
			if (cookie_begin == 0)
			{
				break;
			}
		}
		return null;
	}
	
	this.itk_set_cookie = function itk_set_cookie(name, value)
	{	
		document.cookie = name + "=" + escape(value) + "; path=/";
	}
}

var itk_explorer_class = new Explorer();


function enableMenuesIE(classname)
{
		if (classname == null) classname='dropdown';
	
		if (document.all)
		{
		uls = document.getElementsByTagName('UL');
 
		for(i = 0; i < uls.length; i++)
		{
			if (uls[i].className == classname)
			{
				var lis = uls[i].getElementsByTagName('li');
 
				for (j = 0; j < lis.length; j++)
				{
					if(lis[j].lastChild.tagName == 'UL')
					{
						lis[j].onmouseover = function() { 										
							this.lastChild.style.display = 'block'; 
						}
						lis[j].onmouseout = function() { 								
							this.lastChild.style.display = 'none'; 
						}							
					}
				}
			}
		}
	}
}

/* ----------------------------------------------------------------------- */
/**
 * ITK_Container
 * @author mpetelin
 */
/* ----------------------------------------------------------------------- */


var ITK_Container = new Object({

    init: function(cookiename){
        this.cookiename = cookiename;        
		var cookie_daten = this.fetch_cookie();
        var container_liste = document.getElementsByTagName("dir");
       
        for (var index = 0; index < container_liste.length; index++) {
        
            var element = container_liste[index];
            
            for (var i = 0; i < element.childNodes.length; i++) {
                var child = element.childNodes[i];
                var h1;
                if (child.tagName == "H1") {
                    child.className = "close";
                    child.divobj = new Object();
                    this.addEvent(child, 'click', this.onclickevent, false);
                    child.attachevent;
                    h1 = child;
                }
                
                if (child.tagName == "DIV") {
                    h1.divobj = child;
					if (this.get_display(child, cookie_daten)) {
						child.className = "container-open";
						h1.className = "open";
					} else {
						child.className = "container-close";
						h1.className = "close";
					}
                    
                }
            }
            
        }
    },
    
    addEvent: function(obj, eventType, funktion, useCaption){
        if (obj.addEventListener) {
            obj.addEventListener(eventType, funktion, useCaption);
            return true;
        }
        else 
            if (obj.attachEvent) {
                var retVal = obj.attachEvent("on" + eventType, funktion);
                return retVal;
            }
            else {
                return false;
            }
    },
    
    
    onclickevent: function(e){
		if (!e) var e = window.event;
		obj = e.srcElement || e.currentTarget;
		
        if (obj.divobj.className == "container-open") {
            obj.divobj.className = "container-close";
            obj.className = "close";
            ITK_Container.save(obj.divobj, false);
        }
        else {
            obj.divobj.className = "container-open";
            obj.className = "open";
            ITK_Container.save(obj.divobj, true);
        }
    },
    
    fetch_cookie: function(){
        var cookie_name = this.cookiename + "=";
        var cookie_length = document.cookie.length;
        var cookie_begin = 0;
        
        
        while (cookie_begin < cookie_length) {
            var value_begin = cookie_begin + cookie_name.length;
            
            if (document.cookie.substring(cookie_begin, value_begin) == cookie_name) {
                var value_end = document.cookie.indexOf(";", value_begin);
                if (value_end == -1) {
                    value_end = cookie_length;
                }
                return unescape(document.cookie.substring(value_begin, value_end)).split("\n");
            }
            cookie_begin = document.cookie.indexOf(" ", cookie_begin) + 1;
            if (cookie_begin == 0) {
                break;
            }
        }
        return new Array();
    },
    
    set_cookie: function(value){
        document.cookie = this.cookiename + "=" + escape(value) + "; path=/";
    },
    
    save: function(objid, display){
        var collapsed = this.fetch_cookie();
        var tmp = new Array();
        
              
        for (i in collapsed) {
            if (collapsed[i] != objid.id && collapsed[i] != "") {
                tmp[tmp.length] = collapsed[i];
            }
        }        
        
        if (display) {
            tmp[tmp.length] = objid.id;
        }
        
        this.set_cookie(tmp.join("\n"));
    },
	
	get_display: function (objid, liste) {
		for (i = 0; i < liste.length; i++) {
			if (objid.id == liste[i]) return true;
		}
		
		return false;
	}    
});

function itk_container_load() {	
	ITK_Container.init("itk_container");	
}

ITK_JSLib.WindowsAddEvent("load", itk_container_load);

/* ----------------------------------------------------------------------- */
/* SECTION CODE */
/* ----------------------------------------------------------------------- */

var ITK_Section = new Object({
	section_header_tag: "fstrc_header_",
	section_tag: "fstrc_section_",	
	workflow_header_tag: "fstrc_workflowheader_",
	workflow_tag: "fstrc_workflow_",
	sections: new Array(),	
	
    init: function(sections){
		for(var i=0; i < sections.length; i++) {
			var form_id = sections[i];

			var header = document.getElementById(this.section_header_tag + form_id);
			var section_elem = null;
			var nr = 0;
			var section_obj = null;
			var tabindex = null;
			
			if (header != null) {
				this.sections[i] = new SectionObj();
				this.sections[i].header = header;
				this.sections[i].form_id = form_id;
				
				do {
					section_elem = document.getElementById(this.section_tag + form_id + "_" + nr);
					
					if (section_elem != null) {
						var section_obj = new Section();
						section_obj.id = this.section_tag + form_id + "_" + nr;
						section_obj.element = section_elem;
						
						this.sections[i].sections[nr] = section_obj;
												
					}
					
					nr++;								
				} while(section_elem != null);
			
			} else {
				header = document.getElementById(this.workflow_header_tag + form_id);
				tabindex = header.getAttribute("tabindex");
				
				if (header == null) return;
				
				this.sections[i] = new WorkflowObj();
				this.sections[i].header = header;
				this.sections[i].tabindex = tabindex;
				this.sections[i].form_id = form_id;		
				
				do {
					section_elem = document.getElementById(this.workflow_tag + form_id + "_" + nr);
					
					if (section_elem != null) {
						var section_obj = new Section();
						section_obj.id = this.workflow_tag + form_id + "_" + nr;
						section_obj.element = section_elem;
						
						this.sections[i].sections[nr] = section_obj;
												
					}
					
					nr++;								
				} while(section_elem != null);		
			}
			
			this.sections[i].init();

		}
	},
	
	gotoTab: function(form_id, nr) {
		var obj = null;
		
		for(i in this.sections) {
			if (form_id == this.sections[i].form_id) {
				obj = this.sections[i];
				break;
			}
		}
		
		if (obj == null) return;
		
		obj.gotoTab(nr);
		
		
	}	
			
});


function SectionObj() {
	this.header = "";
	this.sections = new Array();
	this.form_id = "";
	
	this.init = function init() {
		this.init_header();
	}
	
	this.init_header = function init_header() {
		var ul = document.createElement("ul");
		for (var i = 0; i < this.sections.length; i++) {
			
			var li = document.createElement("li");
			var titel = this.sections[i].element.getAttribute("title");
			
			li.appendChild(document.createTextNode(titel));
			li.section = this.sections[i];	
			li.section_obj = this;		
			
			this.sections[i].li = li;
			
			if (li.section.element.className == "fstrc_section") {
				li.className = "selected";
			}
			
			li.style.cursor = "pointer";

			this.addEvent(li, "click", this.header_click, false);
			ul.appendChild(li);
		}
		this.header.appendChild(ul);
	}
	
	this.hide_all_sections = function hide_all_sections() {
		for (var i = 0; i < this.sections.length; i++) {
			var section = this.sections[i];	
								
			section.element.style.display = "none";
			section.li.className = "";
		}
	}
	
	this.header_click = function header_click(event) {
		var reiter = event.srcElement || event.currentTarget;
		
		reiter.section_obj.hide_all_sections();
		reiter.section.element.style.display = "block";
		reiter.className = "selected";
	}
	
	this.addEvent = function addEvent(obj, eventType, funktion, useCaption){
        return ITK_JSLib.AddEvent(obj, eventType, funktion, useCaption);
    }
	
	this.gotoTab = function gotoTab(nr) {		
		if (this.sections[nr]) {
			this.hide_all_sections();
			this.sections[nr].element.style.display = "block";
			this.sections[nr].li.className = "selected";
		}
	}
}

function WorkflowObj() {
	this.header = "";
	this.sections = new Array();
	this.aktiv = 0;	
	this.tabindex = true;
	this.form_id = "";
	
	this.init = function init() {
		this.init_header();
	}
	
	this.init_header = function init_header() {
		var ul = document.createElement("ul");

		
		if (this.tabindex) {
			/* Prev */
			var li = document.createElement("li");
			
			li.appendChild(document.createTextNode("<"));
			li.className = "prev";
			li.section_obj = this;
			this.addEvent(li, "click", this.prev, false);
			ul.appendChild(li);
		}
			
		for (var i = 0; i < this.sections.length; i++) {
			
			li = document.createElement("li");
			var titel = this.sections[i].element.getAttribute("title");
			
			li.appendChild(document.createTextNode(titel));
			li.section = this.sections[i];	
			li.section_obj = this;		
			
			this.sections[i].li = li;
			
			if (li.section.element.className == "fstrc_section") {
				li.className = "selected";
				this.aktiv = i;
			}
			
			ul.appendChild(li);
			
			/* pflichtfelder initialisieren */
			this.sections[i].init_pflichtfelder();
		}
		
		if (this.tabindex) {
			/* Next */
			li = document.createElement("li");
			li.appendChild(document.createTextNode(">"));
			li.className = "next";
			li.section_obj = this;
			this.addEvent(li, "click", this.next, false);
			ul.appendChild(li);
		}
		
		this.header.appendChild(ul);
	}
	
	this.hide_all_sections = function hide_all_sections() {
		for (var i = 0; i < this.sections.length; i++) {
			var section = this.sections[i];						
			section.element.style.display = "none";
			section.li.className = "";
		}
	}
	
	this.header_click = function header_click(event) {
		var reiter = event.srcElement || event.currentTarget;
		
		reiter.section_obj.hide_all_sections();
		reiter.section.element.style.display = "block";
		reiter.className = "selected";
	}
	
	this.addEvent = function addEvent(obj, eventType, funktion, useCaption){
        return ITK_JSLib.AddEvent(obj, eventType, funktion, useCaption);
    }
	
	this.show_aktiv_section = function show_aktiv_section() {
		var section = this.sections[this.aktiv];
		if (section == null) return;
		
		section.element.style.display = "block";
		section.li.className = "selected";		
	}
	
	this.next = function next(event) {
		var reiter = event.srcElement || event.currentTarget;	
		var obj = reiter.section_obj;

		if (!obj.sections[obj.aktiv].check_pflichtfelder()) return;
		
		obj.hide_all_sections();
		obj.aktiv++;
		
		if (obj.aktiv == obj.sections.length) obj.aktiv--;
		
		obj.show_aktiv_section();
	}
	
	this.prev = function prev(event) {
		var reiter = event.srcElement || event.currentTarget;		
		var obj = reiter.section_obj;
		
		if (!obj.sections[obj.aktiv].check_pflichtfelder()) return;
		
		obj.hide_all_sections();
		obj.aktiv--;
		
		if (obj.aktiv < 0) obj.aktiv = 0;
		
		obj.show_aktiv_section();		
	}
	
	
	this.gotoTab = function gotoTab(nr) {		
		if (this.sections[nr]) {
			
			if (!this.sections[this.aktiv].check_pflichtfelder()) return;
			
			this.hide_all_sections();
			this.aktiv = nr;
			this.show_aktiv_section();			
		}
	}
}


function Section() {
	this.id = null;
	this.li = null;
	this.element = null;
	this.pflichtfelder = new Array();
	
	this.init_pflichtfelder = function init_pflichtfelder() {
		var felder = this.element.getElementsByTagName("input");
		var nr = 0;
		for (var i=0; i < felder.length; i++) {
			var feld = felder[i];
			var required = (feld.getAttribute("lang")) ? true : false;
			
			
			if (required) {
				this.pflichtfelder[nr] = feld;			
				nr++;
			}
			
		}		
	}
	
	this.check_pflichtfelder = function check_pflichtfelder() {
		var retval = true;
		
		for (var i = 0; i < this.pflichtfelder.length; i++) {
			var feld = this.pflichtfelder[i];
			
			if (feld.value == "") {
				alert(feld.getAttribute("lang"));
				feld.className = "error";
				
				if (feld.focus && feld.type != 'hidden') {
					feld.focus();
				}
				
				return false;
			} else {
				feld.className = "";
			}
		
		}
		
		return retval;
			
	}
	
}


function itk_sections_load() {

	if (itk_sections != null && itk_sections.length > 0) {
		ITK_Section.init(itk_sections);
	}
	
}


ITK_JSLib.WindowsAddEvent("load", itk_sections_load);

/* ----------------------------------------------------------------------- */
/* ITK_FormInfo */
/* ----------------------------------------------------------------------- */

var ITK_FormInfo = new Object({
	element_type: new Array("checkbox", "radio"),
	elemente: new Array(),
	
    init: function(){
		var input_elemente = document.getElementsByTagName('input');
		
		for(var i=0; i < input_elemente.length; i++) {
			if (ITK_JSLib.inArray(this.element_type, input_elemente[i].type) && input_elemente[i].title.length > 0) {
				
				var element = new ITK_FormInfo_Obj();
				element.init(input_elemente[i]);
				
				this.elemente[this.elemente.length] = element;
				
			}
		}
		
	}
});


function ITK_FormInfo_Obj() {
	this.html_element = null;
	
	this.init = function init(element) {
		this.html_element = element;
		
		ITK_JSLib.AddEvent(this.html_element, 'click', this.showtitel, false);
	}
	
	this.showtitel = function showtitel(event) {
		var element = event.srcElement || event.currentTarget;
		var div = document.getElementById("div_" + element.name);

		if (div == null) return;
		
		var child = div.firstChild;
		
		if (element.checked) {		
			if (child) {
				div.removeChild(div.firstChild);
			}
				
			div.appendChild(document.createTextNode(element.title));
			div.style.display = "block";
		} else {
			if (child) {
				div.removeChild(div.firstChild);
			}
			
			div.style.display = "none";
		}
	}
} 

function itk_forminfo_load() {
		ITK_FormInfo.init();
}
/* nur für fragebogen derzeit - manuelles init im fragebogen
ITK_JSLib.WindowsAddEvent("load", itk_forminfo_load);
*/
