/*
           Copyright Uwe Dierolf, UB Karlsruhe, 7.7.1998

           V5 - Anpassungen an alte Browser (z.B. Netscape 2.01)
           - check_catalogue umgestellt (verwendet Name anstelle des Index)
           - Speichern/Laden umgestellt (verwendet substring anstelle Index)

           V6 - auto_load_prefs laedt beim 1. Oeffnen der Seite die pers. Kat.auswahl

           V7 - Buttons umgestellt und mehr Platz geschaffen

           V8 - Englische Uebersetzung eingebaut -kh, 26.8.98

           V9 - MAB-Link + alle Checkboxen werden abgespeichert - UD, 9.12.98

	   Katalog-/Dokumentenunabhängig gemacht (A. Seltenreich, 13.3.2002)

	   V11 - cookie_name()-Funktion aus kvk_generic.js übernommen,
	   damit im index.html-Fall die cookiename-Variable korrekt
	   initialisiert wird [2009-02-11]
	   
	usage: Das Script einfach mit 
		
		<script src="saveall.js" type="text/javascript"></script>

	in die Form mit den zu speichernden Kontrollfeldern einfügen. An dieser
	Stelle werden dann vom Script die Buttons mit den zugehörigen
	Funktionen eingefügt (siehe erste 3 Programmzeilen).
	Das hat den Vorteil, dass Browser, die kein JS unterstützen, oder deaktiviert
	haben, die Buttons gar nicht erst anzeigen.

	Optional kann man mit dem Parameter 

		onLoad="auto_load_prefs (document.forms[0])"

	im BODY Tag aus eventuell schon vorhandenen cookies die die Auswahl
       	schon beim Laden der Seite wiederherstellen.

	Browser-Tests:
	Navigator 4.78	ok
	Mozilla 0.9.4 	ok
	KDE 2.0.1	negativ, rückt die cookies nicht mehr raus
        KDE 2.2.2       ok
        iexplorer 6.0   ok
	iexplorer 5.0	ok
        Opera 5.0       ok
 */

document.write ("Auswahl: &nbsp;");
document.write ("<INPUT class=button TYPE=button  VALUE=Sichern OnClick=save_prefs(this.form)> &nbsp;");
document.write ("<INPUT class=button TYPE=button  VALUE=Laden OnClick=load_prefs(this.form)> &nbsp;");
        
function cookie_name() {
    var s = location.hostname;
    if (((location.pathname.search("/([^/]+)\\.[^/]*$") != -1) && (RegExp.$1 != "index")) || (location.pathname.search("/([^/]+)/[^/]*$") != -1)) {
	s = RegExp.$1;
    }       
    return s + "-kvkprefs";
};
    
cookiename = cookie_name();

function all_unchecked() {
        form_el = document.forms[0];
        for (var i=0; i<form_el.kataloge.length; i++)
        {
                if (form_el.kataloge[i].checked == true) return false ;
        }
        return (true);
}

function check_catalog(form_el,name,val) {
        for (var i=0; i<form_el.kataloge.length; i++)
        {
                if (form_el.kataloge[i].value == name) form_el.kataloge[i].checked = val
        }
}

function checked_catalogues(form_el) {
        user_prefs = ""
        for (var i=0;i<form_el.kataloge.length;i++)
        {
                if (form_el.kataloge[i].checked == true) user_prefs += "1"
                else user_prefs += "0"
        }
        return user_prefs
}

function save_prefs(form_el) {
        if (!form_el) form_el=document.forms[0];
	pref = cookiename + "=" + checked_catalogues(form_el) + "; expires=Fri, 01 Jan 2020 16:00:00 GMT"
        document.cookie = pref
//	alert("saved cookie: " + pref);
}

function auto_load_prefs(form_el) {
        if (!form_el) form_el=document.forms[0];
	if (all_unchecked()) load_prefs(form_el);
}

function load_prefs(form_el) {
        if (!form_el) form_el=document.forms[0];
        user_prefs = document.cookie;
	if(!user_prefs) return 0;
//	alert("loaded cookie: " + user_prefs);
        p = user_prefs.indexOf(cookiename)
        user_prefs = user_prefs.substring(p+1+cookiename.length)
        
	for (var i=0; i<form_el.kataloge.length; i++)
        {
                form_el.kataloge[i].checked = (user_prefs.substring(i,i+1)==1)
        }
}


