var sAction;
var path = "", sSortMode = "", sOrderMode = "";
$(document).ready(function() {
  filters(path);
});

function filter(Url, Property) {
    //Get sort modes:
  Url = Url.replace('/p2', '');
  Url = Url.replace('/p3', '');
  Url = Url.replace('/p4', '');

  if (document.getElementById('sort') != null) {
    /*sSortMode=document.getElementById('sort').value;
    sOrderMode=document.getElementById('order').value;*/

    var refSortList = document.getElementById('sort');
    sSortMode = refSortList.options[refSortList.selectedIndex].value;

    var refOrderList = document.getElementById('order');
    sOrderMode = refOrderList.options[refOrderList.selectedIndex].value;

  } else {
    sSortMode = '';
    sOrderMode = '';
  }

  //Disable sorting:  
  $('#sort').attr({ disabled: 'true' });
  $('#order').attr({ disabled: 'true' });

  sRequestUrl = Url + "/" + Property + ".aspx?forajax=true&sort=" + sSortMode + "&order=" + sOrderMode;
  sAction = Url + "/" + Property + ".aspx";



  $.ajax({
    url: sRequestUrl.replace('%26', '&'),
    cache: false,
    success: function(data) {
      var end = data.toString().indexOf("#FILTEREND#");
      var filter = data.toString().substring(0, end - 17);
      $("#filterwrap").html(filter);
      $(".filtercontainer").show();
      var products = data.toString().substring(end + 17, data.toString().length);
      DoRefreshProducts(products, sAction);
    }
  });
  //$.cookie('filter', sAction, { path: '/' });
}

function DoRefreshProducts(data, sUrl) {
  $('#content_locked').html(data);
  filters(sUrl);

  if (document.getElementById('sort') != null) {
    $('#sort').val(sSortMode);
    $('#order').val(sOrderMode);
  }

  if (document.all) {
    FixFooter();
  }
}

function verwijderFilter(sUrl, iFilter) {
  var aUrl = null;
  var sNewUrl = '';
  var sOrderMode = '';
  var sOrderBy = '';
  var oDisplayDiv = null;
  var sRequestUrl = '';

  aUrl = sUrl.split('/');

  if (aUrl) {
    //Search for property and remove it:
    for (z = 0; z < aUrl.length; z++) {
      if ((aUrl[z] != iFilter) && (aUrl[z] != '') && (aUrl[z] != null)) {
        sNewUrl += '/' + aUrl[z].toString();
      }
    }
  }

  //Get sortmodes:
  sOrderMode = $('#order').val();
  sOrderBy = $('#sort').val();

  //Build request URL:
  sRequestUrl = sNewUrl + '.aspx?forajax=true&sort=' + sOrderBy + '&mode' + sOrderMode;
  sRequestUrl = sRequestUrl.replace('%26', '&');
  $.cookie('filter', sNewUrl, { path: '/' });

  $.ajax({
    url: sRequestUrl,
    cache: false,
    success: function(data) {
      //Refresh products:
      var end = data.toString().indexOf("#FILTEREND#");
      var filter = data.toString().substring(0, end - 17);
      $("#filterwrap").html(filter);
      $(".filtercontainer").show();
      var products = data.toString().substring(end + 17, data.toString().length);
      DoRefreshProducts(products, sNewUrl);
    }
  });
}

function filters(sFilterUrl) {
  //Assumme numeric values are filter properties:
  var aUrl = null;
  var oCurrentPropery = null;
  var oDisplayDiv = null;
  var sPropertyTitle = null;
  var sCurrentId = null;

  sFilterUrl = sFilterUrl.replace('.aspx', '');
  aUrl = sFilterUrl.split('/');

  try {
    for (q = 0; q < aUrl.length; q++) {
      if ((IsNumeric(aUrl[q])) && (aUrl[q] != '')) {
        sCurrentId = aUrl[q].toString();
        oCurrentPropery = $('#property_' + sCurrentId);
        sPropertyTitle = $('#property_' + sCurrentId + ' a').attr('title');
        oDisplayDiv = $('#property_' + sCurrentId)[0].parentNode.parentNode;
        oDisplayDiv = oDisplayDiv.getElementsByTagName('div')[0];

        //Set data:
        $(oDisplayDiv).html('gefilterd op: ' + sPropertyTitle + '<br/><br/><a href="javascript:verwijderFilter(\'' + sFilterUrl + '\', ' + aUrl[q].toString() + ');">(terug)</a>');
        $(oDisplayDiv).css({ display: 'inline' });

        //Hide main ul:
        $($('#property_' + aUrl[q].toString())[0].parentNode).css({ display: 'none' });
      }
    }
  } catch (err) { }
}