function setCookie(sNameSpace, sName, sValue){
    var bFound = false;
    dtExpires = new Date();
    dtExpires = new Date(dtExpires.setDate(365));
    var aValues = getArrayFromCookiestring(sNameSpace);
    
    if (aValues!=null){
        for (var i=0;i<aValues.length;i++){
            if (aValues[i].toLowerCase()==sName.toLowerCase()){
                bFound = true;
                aValues[i+1]=sValue;
            }
            i++;
        };
    } else {
        aValues= new Array()
    }
    if(!bFound)aValues.push(sName, sValue)
//alert(sNameSpace + "=" + escape(getCookiestringFromArray(aValues)) + ";page=" + escape(document.location.pathName) + ";expires=" + dtExpires.toGMTString())
    document.cookie = sNameSpace + "=" + escape(getCookiestringFromArray(aValues)) + ";page=" + escape(document.location.pathName) + ";expires=" + dtExpires.toGMTString();
}

function getArrayFromCookiestring(sNameSpace){
    var sCookie=document.cookie;
    var aValues = new Array();
    if (sCookie!=""){
        var aNamespaces = sCookie.split(";");
        for (var i=0;i<aNamespaces.length;i++){
            if(aNamespaces[i].split("=")[0].toString().replace(/ /g,"")==sNameSpace.toString()){
                var sNamespaceValue = unescape(aNamespaces[i].split("=")[1]);
                var aNameValue = sNamespaceValue.split("&");
                for (var j=0; j<aNameValue.length;j++){
                    var aParts = aNameValue[j].split("=")
                    sName = aParts[0];
                    if (aParts.length>1){
                        sValue = unescape(aParts[1]);
                    }else{
                        sValue="";
                    }
                    aValues.push(sName, sValue);
                };
                return aValues;
            };
        };
    };   
    return null;
}

function getCookiestringFromArray(aValues){
    var sValue = "";
    for (var i=0; i<aValues.length;i++){
        if(sValue.length!=0){sValue+="&"};
        sValue+= String(aValues[i]).toLowerCase() + "=" + aValues[i+1];
        i++;
    };
    return sValue;
}

function getCookie(sNameSpace, sName){
    var aValues=getArrayFromCookiestring(sNameSpace);
    if (aValues!=null){
        for (var i=0; i<aValues.length;i++){
            if (aValues[i]==sName){
               sValue= aValues[i+1];
               return sValue
            }
            i++
        }
    }
    return null;
}

function delCookie(sNamespace, sName){
    var bFound = false;
    dtExpires = new Date();
    var aNewValues = new Array;
    var aValues = getArrayFromCookiestring();
    if (aValues!=null){
        for (var i=0;i<aValues.length;i++){
            if (aValues[i]!=sName){
                aNewValues.push(aValues[i],aValues[i+1])
            };
            i++;
        };
        dtExpires = new Date(dtExpires.setDate(365));  //save the cookie if not empty
//alert(sNameSpace + "=" + escape(getCookiestringFromArray(aValues)) + ";page=" + escape(document.location.pathName) + ";expires=" + dtExpires.toGMTString())
        document.cookie = sNameSpace + "=" + escape(getCookiestringFromArray(aValues)) + ";page=" + escape(document.location.pathName) + ";expires=" + dtExpires.toGMTString();
    } else {
        dtExpires = new Date(dtExpires.setDate(-365)); //delete the cookie if empty
        document.cookie = sNameSpace + "=" + ";expires=" + dtExpires.toGMTString();
    }
}

function isCookieEnabled(){
    if (document.cookie!=''){
		return true
	} else{
		document.cookie = "test=test"
		if (document.cookie=="test=test"){
			return true
		} else {
			return false
		}
	}
}


function saveVoorkeuren(sNamespace, variableName, variableValue){
    var oNav = navigator;
    var bCookieEnabled = isCookieEnabled();
    if (bCookieEnabled){
        if(variableName.constructor == String){
            setCookie(sNamespace, variableName, variableValue)
        };
        if(variableName.constructor == Array){
            for (i=0;i<variableName.length;i++){
                setCookie(sNamespace, variableName[i], escape(variableValue[i]))
            }
        };
        alert("Uw zoekvraag is opgeslagen");
    } else {
		alert("Het opslaan van uw zoekvraag is niet gelukt, omdat het gebruik van 'cookies' in uw browser is uitgeschakeld.\n" + 
                "Schakel het gebruik van cookies in, en probeer daarna opnieuw de zoekvraag op te slaan.");
    }
}
