// An extension to the RefinementMenu object that generates
// HTML for second level refinements
console.log('Generating Refinement Menu');

RefinementMenu.generate = function(e){
    if(! RefinementMenu.Refinements) {
        // not an error anymore. DHA doesn't have one
        // console.log('Attempt to read in Refinements object while it doesnt exist - that cant be right');
        return false;
    };
    var pDivObj = $('block_Refinement');
    if(! pDivObj) {
        return false;
    };
    var divObj = pDivObj.firstDescendant();
    if(! divObj){
        return false;
    };
    var r = $A(RefinementMenu.Refinements);
    r.each(function(refinement){
        var subDivObj = new Element('DIV',{className: 'pageblock refine_item dottedright'});
        divObj.insert(subDivObj);
        subDivObj.insert(new Element('H5').update(refinement['RefinementName']))
        var ulObj = new Element('UL', {'class' : 'pageblock'});
        var counter = 0;
        $(refinement.RefinementOptions).each(function(refOpt){
            if(refOpt['RefinementOptionName']) {
                //var linkText = refOpt['RefinementOptionName'] + ' (' + refOpt['RefinementOptionProductCount'] + ')';
                var linkText = refOpt['RefinementOptionName'];
                var aObj = new Element('a', {'href': refOpt['RefinementLink']}).update(linkText);
                var liObj = new Element('li').update(aObj);
                if(counter > 4) {
                    liObj.hide();
                };
                ulObj.insert(liObj);
                counter++;
            };
        });
        if(counter > 4){
            var aMeerObj = new Element('a', {'href' : '#', 'class' : 'refinements_showmore'}).update('meer ...');
            ulObj.insert(new Element('li').update(aMeerObj));
            var aMinderObj = new Element('a', {'href' : '#', 'class' : 'refinements_showless'}).update('minder ...');
            var liMinderObj = new Element('li').update(aMinderObj);
            liMinderObj.hide();
            ulObj.insert(liMinderObj);
        };
        subDivObj.insert(ulObj);
    });
    // the 1 forces the refinement menu init function to run
    RefinementMenu.init(1);
    
}

ECube.registerOnLoadFunction(RefinementMenu.generate);

