//
// (c) 2000-2002 JAWA Management Software GmbH
//
// $Id: itk_js.js 660 2006-10-17 14:34:21Z root $
//

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;

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, 530, 250);
		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="60" rows="10" 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="checkbox" name="chk_konvert_cr" value="1">' + _('Zeilenumbruch erhalten'));
		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_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 +']';
	}

}

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