// ulinx.co.uk - userpref.js
// user preferences functions
// copyright ulinx 2008

function getValues( frm ) 
{
	var sVal = "";

	for( var i = 0; frm.elements[i]; i++ ) 
	{
		var element     = frm.elements[i]; 
		var elementtype = element.type.toLowerCase();

		if( elementtype == 'radio' || elementtype == 'checkbox' ) 
        {
			if( sVal != "" ) 
			{
				sVal += ",";
			}

			if( element.checked ) 
			{
				sVal += "1";
			}
        }

        if( elementtype == 'select-one' ) 
		{
			if( sVal != "" ) 
			{
				sVal += ",";
			}

			sVal += element.selectedIndex;
		}
	}

	return sVal;
}

function setValues( frm, sVal ) 
{
	if( !frm.elements ) 
	{
		return;
	}

	sVal  = sVal.split( ',' );
	var j = 0;

	for( var i = 0; frm.elements[i]; i++ ) 
	{
		var element     = frm.elements[i]; 
		var elementtype = element.type.toLowerCase();

		if( elementtype == 'radio' || elementtype == 'checkbox' ) 
        {
			element.checked = sVal[j] ? true : false;
			j++;
        }

        if( elementtype == 'select-one' ) 
		{
			element.selectedIndex = parseInt( sVal[j] );
			j++
		}
	}
}

function saveCollectionPrefs()
{
	var exp = new Date();   
	exp.setTime(exp.getTime() + (1000 * 60 * 60 * 24 * 30));  // 30 days
	document.cookie = 'ulinxcollectionprefs=' + getValues( document.forms.collections ) + "; expires=" + exp.toGMTString(); 
}

function saveProfilePrefs()
{
	var exp = new Date();   
	exp.setTime(exp.getTime() + (1000 * 60 * 60 * 24 * 30));  // 30 days
	document.cookie = 'ulinxprofileprefs=' + getValues( document.forms.profiles )  + "; expires=" + exp.toGMTString();
}

function loadPrefs()
{
    var cookies = document.cookie.split("; ");
	var forms   = document.forms;
	var bColl   = false;
	var bProf   = false;

	for( var f = 0; f < forms.length; f++ ) 
	{
		if( forms[f].name == "collections" ) 
		{
			bColl = true;
		}
	
		if( forms[f].name == "profiles" ) 
		{
			bProf = true;
		}
	}

    for( var i = 0; i < cookies.length; i++ ) 
	{
        var cookie = cookies[i].split("=");

        if( cookie[0] == "ulinxcollectionprefs" && bColl ) 
        {
			setValues( document.forms.collections, cookie[1] );
	    }

        if( cookie[0] == "ulinxprofileprefs" && bProf ) 
        {
			setValues( document.forms.profiles, cookie[1] );
	    }
	}
}

