﻿
var gintTotaal = 0;
var cintMaxFilters = 25;
var checkboxesDisabled = false;

//
//Functie wordt gebruikt voor printercartridges overzicht.
//
function selectieVastleggen(intVolgnummer) {
    __doPostBack('mrk', '');
	return false;
}

function getAantalTekst(intAantal) {
    var strTekst = 'Jouw selectie levert&nbsp;' + ((isNaN(intAantal) || intAantal == 0) ? 'geen' : intAantal);
    strTekst += (intAantal == 1) ? '&nbsp;variant&nbsp;op&nbsp;' : '&nbsp;varianten&nbsp;op&nbsp;';
    return strTekst;
}


//
//Selectie sorteren op gegeven sorteermethode
//
function selectieSorteren(el) {
    document.getElementById('SM').value = el.value;
	__doPostBack('SM', '');
}

function selectieSorterenEndeca(el) {
    document.getElementById('Ns').value = el.value;
	__doPostBack('Ns', '');
}

//
// Selectie toevoegen voor het CategorieFilter
//
function doCategorieFilterPostBack(val, field) {
	document.getElementById(field).value = val;
	__doPostBack(field, '');
}

//
// Selectie toevoegen voor Vogel's Selector
//
function updateSelectie(el, field) {
    document.getElementById(field).value = el.value;
    __doPostBack(field, '');
}

//
// Voegt van het gegeven veld een waarde toe aan een hidden veld.
//
function addHiddenfieldValue(fieldName, value) {
    var currentValue;
    if (document.getElementById(fieldName)) {
        currentValue = document.getElementById(fieldName).value;
        if (currentValue.indexOf(',' + value + ',') >= 0 || currentValue.indexOf(value + ',') >= 0) {
            currentValue = currentValue.replace(value + ',', '');
            currentValue = currentValue.replace(',' + value + ',', ',');
        }
        else {
            currentValue += value;
            currentValue += ',';
        }
        document.getElementById(fieldName).value = currentValue;
    }
}

//
//Wist de filters voor een gegeven prefix/filterid's
//
function wisFilter(fieldPrefix, filterIds) {
    for (var i = 0; i < filterIds.length; i++) {
        document.getElementById(fieldPrefix + filterIds[i]).value = '';
    }
}

//
//Wist de zoeken(endeca) checkboxfilters 
//
function wisEndecaCheckboxFilter(checkboxFilter, checkboxId) {
    // Alle checkboxes van het checkboxfilter in een array
    var element = document.getElementById(checkboxFilter);
    var arrCheckboxes = element.getElementsByTagName('input');
    
    for (var i = 0; i < arrCheckboxes.length; i++) {
        objCheckbox = arrCheckboxes[i];
        if (objCheckbox.getAttribute('id')) {
            objCheckboxId = objCheckbox.getAttribute('id');            
            // Id van de huidge checkbox gelijk aan het meegegeven id ?
            if (objCheckboxId == checkboxId) {
                // Clear checkbox
                objCheckbox.value = '';
            }           
        }
    } 
}

//
//Handelt de postback van het slider filter control af.
//Zet min en max waardes in een hidden field en roept de postback aan.
//
function handleSliderPostback(fieldName, minControlId, maxControlId, volgnummer) {
    document.getElementById('hid' + fieldName + 'min').value = document.getElementById(minControlId).value;
    document.getElementById('hid' + fieldName + 'max').value = document.getElementById(maxControlId).value;
    document.getElementById('disableSlider' + volgnummer).style.display = 'block'; //de huidige slider disablen door een div overlay.
    doFilterPostBack('hid' + fieldName + 'min', '');
}

var scrollTop;
var hashFilterDivPostions = {};

//
//Functie die bij het begin van een AJAX request aangeroepen wordt.
//
//Volgende functies:
//- Scroll positie van de filter div's (checkbox filters) onthouden.
//
function BeginRequestHandler(sender, args) {
    
    // Alle div tags doorlopen
    var arrDivs  = document.getElementsByTagName('div');
    for (var i = 0; i < arrDivs.length; i++) {
        objDiv = arrDivs[i];
        if (objDiv.getAttribute('id')) {
            divId = objDiv.getAttribute('id');
            // Bepalen of het een filter div is (divFilterOptionsX).
            if (divId.length > 16 && divId.toLowerCase().substring(0, 16) == "divfilteroptions") {
                hashFilterDivPostions[divId] = objDiv.scrollTop;               
            }  
        }
    }        
}

//
//Functie die aan het einde van een AJAX request aangeroepen wordt.
//
//Volgende functies:
//- Scroll posties van de filter divs terugzetten (zie BeginRequestHandler).
//
function EndRequestHandler(sender, args) {
    // Scroll posities herstellen
    for (key in hashFilterDivPostions) {
        try {
            document.getElementById(key).scrollTop = hashFilterDivPostions[key];
        }
        catch (err) { }
    }
	// Zet opnieuw de z-index op de knoppen binnen de slider.
	initZindexSlider();
}

//
// Tonen van GeenArtikelenPopup
//
function toonGeenArtikelenGevonden() {
    fancyboxPopup('/Winkelen/GeenArtikelenPopup.aspx?', 280, 100, 'Geen artikelen gevonden');
}

//
// Hidden field index zetten voor het bladeren in het artikeloverzicht
//
function setBladerenIndexHiddenField(pageIndex, hiddenFieldName) {
    var hiddenFields = document.getElementsByName(hiddenFieldName);
    if (hiddenFields) {
        hiddenFields[0].value = pageIndex;
        for (var i = 1; i < hiddenFields.length; i++) {
           hiddenFields[i].parentNode.removeChild(hiddenFields[i]);
        }
    }
}

//
//Toont of verbergt het filter.
//Werkt ook het hidden field bij.
//
function toggleFilterDisplay(filterDiv, volgnummer, anchor, wisAnchor, maxRows, initHeight) {
    var filter = document.getElementById(filterDiv);
    var wis = document.getElementById(wisAnchor);
    if (filter) {
        if (anchor.className == 'inactive') {
            filter.style.display = 'block';
            if (wis) {
                wis.style.display = 'block';
            }
            anchor.className = 'active';
            if (initHeight) {
                initFilterHeight(filterDiv, maxRows);
            }
            addHiddenfieldValue('F', volgnummer);
        } else {
            filter.style.display = 'none';
            if (wis) {
                wis.style.display = 'none';
            }
            anchor.className = 'inactive';
            addHiddenfieldValue('F', volgnummer);
        }
    }
}

// Zet de maximale hoogte op de filter div tijdens initialisatie
function initFilterHeight(filterDiv, maxRows) {
    var objDiv = document.getElementById(filterDiv);
    if (maxRows <= 0) {
        maxRows = 5;
    }
    var maxHeight = maxRows * 19 - 1;
    if (objDiv == null) return false;
    
    if (objDiv.className == "filterOptions list NoScript" || objDiv.className == "filterOptions list") {
        objDiv.className = "filterOptions list";
    } else {
        objDiv.className = "filterOptions list columns";
    }

    if (objDiv.scrollHeight > maxHeight) {
        objDiv.style.height = maxHeight + "px";
        objDiv.style.overflow = "scroll";
        objDiv.style.overflowX = "hidden";
    }

}

//
//Doet een postback en checkt of er al een filter actie bezig is zo ja dan word deze (client side! dus niet server side) geannulleerd.
//
function doFilterPostBack(name, argument) {
    var prm = Sys.WebForms.PageRequestManager.getInstance();
    if (prm.get_isInAsyncPostBack()) {
        prm.abortPostBack();
    }

   __doPostBack(name, argument); 
}

///
///Wisselt van stylesheet (is o.a. nodig bij het wisselen van sjabloon bij een asynchrone postback).
///
function switchStyleSheet(id, newSrc) {
    var style = document.getElementById(id);
    style.href = newSrc;
}

// Zet een z-index op de knoppen binnen de slider.
function initZindexSlider() {
	if ($("div[id*='SliderControlPR_outer']").length > 0) {
		var maxSliderLeft = $("div[id*='SliderControlPR_outer'] a:last").css("left");
		var maxSliderZ = maxSliderLeft.substring(0, maxSliderLeft.indexOf("px")) <= 12 ? "3" : "1";
		$("div[id*='SliderControlPR_outer'] a:first").css("z-index", "2");
		$("div[id*='SliderControlPR_outer'] a:last").css("z-index", maxSliderZ);
	}
}
$(document).ready(function() {
	setTimeout('initZindexSlider()', 750);
});

//checkbox wordt getoggeld als op de sterren in het beoordelingsfilter wordt geklikt
function toggleCheckMetImage(elementid) {
        obj = document.getElementById(elementid);        
        if (obj && obj.getAttribute('type')=='checkbox') {
            if (obj.checked) {
                obj.checked =false;
            } else {
                obj.checked = true;
            }
            doFilterPostBack(elementid,'')
        }
    }

