//
// (c) 2000-2002 JAWA Management Software GmbH
//
// $Id: itk_js.js,v 1.53.2.2 2004/03/10 15:24:01 ktiefenb Exp $
//



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;

function logout_quiet(logout_usr,path){

	stat = window.open(path + "/sitosstatus.php?logout_usr='" + logout_usr + "'&path='" + path + "'","sitosstatus", "width=200, height=1" );
	stat.blur();
	self.focus();
}

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_ersetzungen_uebernehmen_element(form_id, form_dest, name, elemname, elemname1) {
	if(document.forms[form_id].elements[name] != null) {
    	if (opener.document.forms[form_dest].elements[elemname].value == 'checkbox') {
    		if (document.forms[form_id].elements[name].checked) {
    			opener.document.forms[form_dest].elements[elemname1].value = 'j';
    		} else {
    			opener.document.forms[form_dest].elements[elemname1].value = 'n';
    		}
    	} else {
    		opener.document.forms[form_dest].elements[elemname1].value = document.forms[form_id].elements[name].value;
    	}
    } else if (document.forms[form_id].elements[name + '[0]'] != null) {	
		for(i=0; document.forms[form_id].elements[name + '[' + i + ']'] != null; i++) {
			if(document.forms[form_id].elements[name + '[' + i + ']'].type == 'checkbox') {
				if(!document.forms[form_id].elements[name + '[' + i + ']'].checked) {
					continue;
				}	
			}
			opener.document.forms[form_dest].elements[elemname1].value += '|' + document.forms[form_id].elements[name + '[' + i + ']'].value;
		}
    } else {
    	alert('Missing ' + elemname1);
    }
}

function itk_ersetzungen_uebernehmen(form_id, form_dest) {
    for (z=2; z < arguments.length; z++) {
        elemname = "uebernehmen_ersetzung_" + arguments[z];  
        if (opener.document.forms[form_dest].elements[elemname] != null && document.forms[form_id].elements[elemname] != null) {
        	if (document.forms[form_id].elements[elemname].checked) {
        		opener.document.forms[form_dest].elements[elemname].value = document.forms[form_id].elements[elemname].value;
		        
        		elemname1 = "ersetzung_" + arguments[z];  
		        if (opener.document.forms[form_dest].elements[elemname1] != null) {
		        	itk_ersetzungen_uebernehmen_element(form_id, form_dest, arguments[z], elemname, elemname1);
		        } else {
		        	alert('Missing ' + elemname1);
		        }
        	}
        } else {
        	alert('Missing ' + elemname);
        }
    }
    opener.document.forms[form_dest].elements['btn_ersetzen'].value = 'Ersetzen';
    opener.document.forms[form_dest].submit();
}

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) {
	var checkbox_ref;
	
	if (elemname == null) {
		elemname = 'itk_zeile_nr[]';
	}
	prefixed_elemname = form_ref.name + "_" + elemname;
	
    if(form_ref[elemname] != null) {
		checkbox_ref = form_ref[elemname][zeile_nr];
		if (checkbox_ref == null) {
			checkbox_ref = form_ref[elemname];
		}
    }
    if(checkbox_ref == null && form_ref[prefixed_elemname] != null) {
		checkbox_ref = form_ref[prefixed_elemname][zeile_nr];
		if (checkbox_ref == null) {
			checkbox_ref = form_ref[prefixed_elemname];
		}
    }
    
    if (checkbox_ref) {
    	checkbox_ref.checked = true;
    	checkbox_ref.value = zeile_nr;
    }
    checkbox_ref = null;
}

function itk_tabelleneingabe_geaendert2(form_ref, zeile_nr, elemname) {
    elemname = 'itk_changed[]';
	
    checkbox_ref = form_ref[elemname][zeile_nr];
    if (checkbox_ref == null) {
        checkbox_ref = form_ref[elemname]
    };

    if (checkbox_ref) checkbox_ref.value = 1;
    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, status, menubar, fullscr
function itk_fenster_oeffnen(titel, seite, e, breite, hoehe, resizeable, scrollbars, neu) {
    if (!resizeable) resizeable = "no";
    if (resizeable == "yes") {
        dependent = "no"
    } else {
        dependent = "yes";
    }

    var halign = "center";
    var valign = "center";
    var toolbar = "no";
    var status = "no";
    var menubar = "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 (k == 11) menubar = arguments[k];
    }
    
    if (toolbar != "yes") {
        toolbar = "no";
    }

    if (status != "yes") {
        status = "";      //Shows no in IE
    }
    
    if (menubar != "yes") {
        menubar = "no";
    }

    
	total_fullscr = (hoehe == -1 && breite == -1);
	relax_fullscr = (hoehe == 0 && breite == 0) ;
	    
    if (hoehe == 0) {
        hoehe = screen.availHeight - 24 - 15;
        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 (breite == 0) {
       breite = screen.availWidth - 4 ;
       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=" + menubar +
                       ",left=" + links +
                       ",top=" + oben +
                       ",width=" + breite + ",height=" + hoehe +
                       ",innerWidth=" + breite + ",innerHeight=" + hoehe ;

    z = 0;

    for (k=12; 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(total_fullscr) fenster_attr = "scrollbars=no, status=no, menubar = no, toolbar=no";
		
   	itk_fenster = open(seite, titel, fenster_attr);
   	
    if(total_fullscr){
       	itk_fenster.moveTo(-4,-24) ;
		itk_fenster.resizeTo(screen.width + 8, screen.height + 28) ;
    } else if (relax_fullscr){
		itk_fenster.resizeTo(screen.availWidth, screen.availHeight) ;    	
    }
	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=' + select_form_id.options[select_form_id.selectedIndex].value;
    } else {
       	link = seite + '?objekt_id=' + 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_benutzergruppen_zuordnung_oeffnen(titel, seite, e, breite, hoehe, gruppen) {
    itk_fenster_oeffnen(titel, seite, e, breite, hoehe, "yes", "yes", true,  "center", "center", "no", "no", gruppen);
}

function itk_benutzergruppen_zuordnung_laden(formelem_name) {
    formelem = null;
    var i = 0;
    var kk = 0;
    var e = 0;
	var arr_benutzergruppen = new Array;
    for (i=0; i < opener.document.forms.length; i++) {
        form_ref = opener.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;
    }
	if (formelem.value.length > 0) {
		arr_bengrp_rolle = formelem.value.split(',');
		for (kk=0; kk < arr_bengrp_rolle.length; kk++) {
			arr_benutzergruppe = arr_bengrp_rolle[kk].split(':');
			arr_benutzergruppen[arr_benutzergruppe[0]] = arr_benutzergruppe[1];
			i = 0;
			bngrp = itk_formelement_by_name('benutzergruppe[' + i + ']')
			while(bngrp != null) {
				if (bngrp.value == arr_benutzergruppe[0]) {
					rolle = itk_formelement_by_name('rolle[' + i + ']');
					rolle.value = arr_benutzergruppe[1]; 
				}
				i++;
				bngrp = itk_formelement_by_name('benutzergruppe[' + i + ']')
			}
		}
	}
}

function itk_benutzergruppen_zuordnung_speichern(formelem_name, bezeichnung_formelem_name) {
    formelem = null;
    var i = 0;
    var kk = 0;
    var e = 0;
	var arr_benutzergruppen = new Array;
	var result = '';
	var bezeichnung_result = '';
	
	result = '';
	bngrp = itk_formelement_by_name('benutzergruppe[' + i + ']')
	bngrp_bez = itk_formelement_by_name('bezeichnung[' + i + ']')
	while(bngrp != null) {
		rolle = itk_formelement_by_name('rolle[' + i + ']');
		if (rolle.value.length>0) {
			if (result.length>0) {
				result = result + ',';
				bezeichnung_result = bezeichnung_result + ',';
			}
			result = result + bngrp.value + ':' + rolle.value;
			bezeichnung_result = bezeichnung_result + bngrp_bez.value + ':' + rolle.value;
		}   
		i++;
		bngrp = itk_formelement_by_name('benutzergruppe[' + i + ']')
		bngrp_bez = itk_formelement_by_name('bezeichnung[' + i + ']')
	}
    for (i=0; i < opener.document.forms.length; i++) {
        form_ref = opener.document.forms[i];

        for (e=0; e < form_ref.elements.length; e++) {
            if(form_ref.elements[e].name == formelem_name) {
                form_ref.elements[e].value = result;
            }
        }
        for (e=0; e < form_ref.elements.length; e++) {
            if(form_ref.elements[e].name == bezeichnung_formelem_name) {
                form_ref.elements[e].value = bezeichnung_result;
            }
        }
    }
}

// arguments[1] ........ true = add values, false = replace values
// arguments[2] ........ separator string
function itk_fenster_schliessen(rueckgabewerte) {

    if(rueckgabewerte != null) {

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

            if (itk_formelemente_refs[i]) {
                if (arguments[1] == true) {
                	if (itk_formelemente_refs[i].value.length > 0) {
                    	itk_formelemente_refs[i].value = itk_formelemente_refs[i].value + arguments[2] + rueckgabewerte[i];
                	} else {
                    	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) {
                    itk_tabelleneingabe_geaendert(itk_formelemente_refs[i].form,RegExp.$1);
                }

            }

        }

    }

    itk_fenster = null;
}


function itk_fenster_schliessen_hinzufuegen(rueckgabewerte) {

    if(rueckgabewerte != null) {

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

            if (itk_formelemente_refs[i]) {
                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;
        if (f.elements[i].onclick) f.elements[i].onclick();
        a++;
    }
}

function itk_set_checkboxes(f, checked, elemname) {
	if (elemname == null) {
		elemname = 'itk_zeile_nr';
	}
    len = f.length;
    j = 0;
    for (i = 0; i < len; i++) 
    	if (f.elements[i].name == elemname + "[" + j + "]") {
		f.elements[i].checked = checked;
		if (f.elements[i].onclick) f.elements[i].onclick();
		j++;
    }
}

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;
    }
    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) if (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('</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();

	}

    itk_zoom_fenster.document.dummy.itk_zoom_text.value = itk_formelement_ref.value;
	itk_zoom_fenster.focus();
	itk_zoom_fenster.document.dummy.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 decodeHTML(strIn) {
  	var strOut;
  	var regexp = /%39/g
	strOut = strIn.replace(regexp, "'");
 	regexp = /%34/g
	strOut = strOut.replace(regexp, '"');
	regexp = /%60/g
	strOut = strOut.replace(regexp, '<');
 	regexp = /%62/g
	strOut = strOut.replace(regexp, '>');
  	return strOut;
}