/*
           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)
	   
	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 ("Choix: &nbsp;");
document.write ("<INPUT class=button TYPE=button VALUE=Sauvegarde OnClick=save_prefs(this.form)> ");
document.write ("<INPUT class=button TYPE=button VALUE=Charge OnClick=load_prefs(this.form)>");
        
// cookie wird nach dem jeweiligen HTML Dokument benannt
cookiename=document.URL.substr(document.URL.lastIndexOf("/")+1,document.URL.length - document.URL.lastIndexOf("/")+1 ) + "utah_catalog_selection"; 
// alert ("cookiename: " +  cookiename );
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);
        p = user_prefs.indexOf(cookiename);
        user_prefs = user_prefs.substring(p+cookiename.length+1);

//	alert("loaded cookie: " + user_prefs);
        
	for (var i=0; i<form_el.kataloge.length; i++)
        {
                form_el.kataloge[i].checked = (user_prefs.substring(i,i+1)==1);
        }
}
