    function readCookiesAndSetFilter() {
        var cookieObj = subcookiejar.fetch ('dealfilter');
        for (var subCookie in cookieObj) 
        {
            var subCookieExpressions = cookieObj[subCookie].split('*');
            for (var singleExpression in subCookieExpressions) 
            {
                var tmp = subCookieExpressions[singleExpression].split('|');
                var subCookieValue = $.trim(tmp[1]);
                if (subCookieValue != '') {
                    var sel = '#df_' + subCookie.substring(0,2) + '_' + subCookieValue;
                    $(sel).attr('class', 'selected');
                    $(sel).parent().parent().attr('class', 'selected');
                    $('#df-reset').attr('class', 'selected');
                }
            }
        }
    }
    
    function readCookiesAndSetDisplayCurrency() {
        var cookieCur = cookiejar.fetch('displaycurrency');
        var currencies = 'USD*EUR*GBP*AUD';
        if ((cookieCur == null) || (cookieCur == '') || (currencies.indexOf(cookieCur)<0)) {
            cookieCur = '---';
            cookiejar.bake('displaycurrency', cookieCur, 3);
        }
        $('#curselect').val(cookieCur);
    }

    function dealFilterItemSelected(fcategory, fitem) {
        if (fcategory != fitem) {        
            var cvalue = $.trim(fitem.substring(6));
            var sel = '#' + fitem;   
            var fexclusive = ($(sel).parent().attr('class') == 'df-single');
            if ($(sel).attr('class') == 'selected') {
                $(sel).removeAttr('class');
                // reset subcookie(s)
                updatedCookie = '';
                subCookie = $.trim(subcookiejar.fetch ('dealfilter', fcategory));
                if (subCookie != null) {
                    var subCookieExpressions = subCookie.split('*');
                    for (var singleExpression in subCookieExpressions) 
                    {
                        var tmp = subCookieExpressions[singleExpression].split('|');
                        var subCookieValue = $.trim(tmp[1]);
                        if (subCookieValue != cvalue) {
                            if (updatedCookie != '') {
                                updatedCookie += '*';
                            }
                            updatedCookie += $.trim(subCookieExpressions[singleExpression]);
                        }
                    }
                    if (updatedCookie != '') {
                        //alert('Updating: >' + updatedCookie + '<');
                        var sc = {};
                        sc[fcategory] = updatedCookie;
                        subcookiejar.bake('dealfilter', sc, 1);
                    } else {
                    	//alert('Crumbling: ' + fcategory);
                        subcookiejar.crumble('dealfilter', fcategory, 1);
                        $(sel).parent().parent().removeAttr('class');
                        if (!($('.df-menu li').not($(sel).parent().parent()).not($('#df-reset')).hasClass('selected'))) {
                            $('#df-reset').removeAttr('class');
                        }
                    }
                }
            } else {
                if (fexclusive) {
                    $(sel).parent().children().removeAttr('class');
                    updatedCookie = '';
                } else {
                    updatedCookie = subcookiejar.fetch ('dealfilter', fcategory);
                    if ((updatedCookie != '') && (updatedCookie != null)) {
                        updatedCookie += '*';
                    } else {
                        updatedCookie = '';
                    }
                }
                $(sel).attr('class', 'selected');
                $(sel).parent().parent().attr('class', 'selected');
                $('#df-reset').attr('class', 'selected');
                switch (fcategory)
                {
                    case 'dealpricetag':
                        updatedCookie += '<=|' + cvalue;
                        break;
                    case 'saving':
                        updatedCookie += '>=|' + cvalue;
                        break;
                    case 'dr_regions':
                    case 'dp_platforms':
                        updatedCookie += 'IN|' + cvalue;
                        break;
                    default:
                        updatedCookie += '=|' + cvalue;
                        break;
                }
                var sc = {};
                sc[fcategory] = updatedCookie;
                subcookiejar.bake('dealfilter', sc, 1);
            }
        }
    }