
// De standaardfunctie waarmee de berichtenlijst wordt gerefreshed
function postAjaxForm(bAsync)
{
    var rubriek = document.getElementById('fld_rubriek').value;
    var zoekterm = document.getElementById('fld_zoekterm').value;
    if(zoekterm=="Vul een zoekterm in...")
        zoekterm="";
    var pagina = document.getElementById('fld_pagina').value;
    var mediatypes="";
    if(document.getElementById('fld_media_audio').value=="1")
        mediatypes += "Audio,";
    if(document.getElementById('fld_media_foto').value=="1")
        mediatypes += "Foto,";
    if(media_video = document.getElementById('fld_media_video').value=="1")
        mediatypes += "Video,";
    if(media_document= document.getElementById('fld_media_documenten').value=="1")
        mediatypes += "Document,";
    var datumstart = document.getElementById('fld_datumstart').value;
    var datumeind = document.getElementById('fld_datumeind').value;
    var url = 'AjaxWrapper.aspx?method=persberichten&rubriekfilter=' + rubriek + '&zoekterm='+ zoekterm + '&pagina=' + pagina + "&mediatypes=" + mediatypes + "&datumstart="+ datumstart + "&datumeind=" + datumeind;
    ajaxFunction(url,'divBerichten',bAsync);
    if(zoekterm!="" || rubriek!="" || mediatypes != "" || datumstart!="" || datumeind!="")
        toggleResetFilter(true);
    else
        toggleResetFilter(false);
    return false;
}

function toggleResetFilter(bVisible){
    if(bVisible)
        document.getElementById("filteropheffen").style.visibility = "visible";
    else
        document.getElementById("filteropheffen").style.visibility = "hidden";
}

//deze wordt aangeroepen door ajaxFunction(false)
function ajaxCallback(){
    presetDatumFilter();
    setSliders();
}

// Standaard weergave (bij start en reset)
function defaultView(){
    setValue('fld_rubriek',"");
    setValue('fld_zoekterm',"Vul een zoekterm in...");
    setValue('fld_pagina',"1");
    setValue('fld_datumstart',"");
    setValue('fld_datumeind',"");
    resetMediaFilter("audio");resetMediaFilter("video");resetMediaFilter("foto");resetMediaFilter("documenten");
    postAjaxForm(false);
}

// Rubriekfilter toepassen
function setRubriekFilter(sRubriek){
    if(sRubriek!="")
    {
        setValue('fld_rubriek',sRubriek);
        setValue('fld_pagina',"1");
        postAjaxForm(true);
    }
}

// Mediafilter toepassen
function setMediaFilter(mediatype){
    var oImg = document.getElementById('btn_' + mediatype);
    var oFilter = document.getElementById('fld_media_' + mediatype);
    if (oFilter.value=="1")
    {
        var value="0";
        var imgSrc="btn_player_" + mediatype;
    }
    else
    {
        var value="1";
        imgSrc="btn_player_" + mediatype + "_sel";
    }    
    oImg.src = "images/" + imgSrc + ".gif";
    oFilter.value=value;
    postAjaxForm(true);
}

// Mediafilters resetten
function resetMediaFilter(mediatype){
    try
        {
            document.getElementById('btn_' + mediatype).src = "images/btn_player_" + mediatype + ".gif";
            document.getElementById('fld_media_' + mediatype).value="0";
        }
    catch(e){}
}

// Bladeren
function paginate(ipagina){
    var oField = document.getElementById('fld_pagina');
    oField.value = ipagina;
    postAjaxForm(true);
}

// init begin- en einddatum 
function presetDatumFilter(){
    if(datumStart==null){
        // de datum is nog niet ingesteld, eenmalig doen
        datumStart = document.getElementById("setdatumstart").value;
        datumEind = document.getElementById("setdatumeind").value;
        setText("datumVanTotaal",datumStart);
        setText("datumVan",datumStart);
        setText("datumTotTotaal",datumEind);
        setText("datumTot",datumEind);
        aantalDagen=DateDiff(getDateFromFormat(datumEind,"dd-MM-yyyy"),getDateFromFormat(datumStart,"dd-MM-yyyy"));
    }
}

// slider is verplaatst, datumfilter toepassen
function setDatumFilter(v){
    setDatumLabels(v,true);
    postAjaxForm(true);
}

function setDatumLabels(sliderValues,bUpdateFields){
    try{
    var datumschaalstart = sliderValues[0];
    var datumschaaleind = sliderValues[1];
    var begin = parseInt(sliderValues[0]);
    var eind = parseInt(sliderValues[1]);
    var schaalBegin = ((begin)/dateSliderWidth) * 100;
    var schaalEind = ((dateSliderWidth - eind)/dateSliderWidth)*100;
    var schuifDagenVan = parseInt((aantalDagen/100) * schaalBegin);
    var schuifDagenTot = 0-parseInt((aantalDagen/100) * schaalEind);
    datumFilterVan = TextFormat(DateAdd(datumStart,schuifDagenVan));
    datumFilterTot = TextFormat(DateAdd(datumEind,schuifDagenTot));
    
    setText("datumVan",datumFilterVan);
    setText("datumTot",datumFilterTot);
    if(bUpdateFields)
    {
        setValue("fld_datumstart",datumFilterVan);
        setValue("fld_datumeind",datumFilterTot);
    }
    }
    catch(e){}
}

function setSliders(){
    var defaultValues = [1, 320];
    var handleLeftWidth = 8;
    var handleRightWidth = 8;
    var dualSliderReadout = null;
                                   
    var dualSlider = new Control.Slider(['leftHandle', 'rightHandle'],
                                         'dualSliderRailBody',
                                         {sliderValue: defaultValues,
                                          range:$R(1, dateSliderWidth),
                                          restricted:true,
                                          spans:['dualSliderSelectedSpan']
                                          });
	
    var updateReadout = function(v)
    {
    }
	
    var detectAndUpdate = function(v, evt)
    {
        collisionDetect(v, evt);
        updateReadout(v);
    }
	
    var collisionDetect = function(v, evt)
    {
        // Get left handle offsets
        lowerL = parseInt(v[0].toFixed());
        lowerR = parseInt(v[0].toFixed()) + handleLeftWidth;
      
        // Get right handle offsets
        upperL = parseInt(v[1].toFixed()) - handleLeftWidth;
        upperR = parseInt(v[1].toFixed());
      
        // First handle
        if ((evt.activeHandleIdx == 0) && (lowerL >= upperL))
        {
            // Remove the change event to prevent infinite recursion
            //dualSlider.options.onChange = null;
            
            // Set the new slider value
            dualSlider.setValue(upperL, 0);
            //dualSlider.options.onChange=setDatumFilter(v);
        }
        
        // Second handle
        if ((evt.activeHandleIdx == 1) && (upperR <= lowerR))
        {
            // Remove the change event to prevent infinite recursion
            //dualSlider.options.onChange = null;
            
            // Set the new slider value
            dualSlider.setValue(lowerR, 1);
            //dualSlider.options.onChange=setDatumFilter(v);
        }
    }
	
    dualSlider.options.onSlide = function(v, evt)
    {
        // Reinstantiate the change event
        //dualSlider.options.onChange = setDatumFilter(v);
        setDatumLabels(v,false);
        detectAndUpdate(v, evt);
    }
	
    dualSlider.options.onChange = function(v, evt)
    {
        setDatumFilter(v);
    }
}        