window.addEvent('domready', function() {
   remove_link_lines()
   homecolumns_mouseover();
   enable_languageselection();
   subnav_init();
   initShowHideDebugInfo();

   // een onchange aan alle veiling inputs meegeven zodat we kunnen checken of
   // er iets gewijzigd is
   //
   if($defined($('VeilingGegevens'))) {
      var tags = $$('#VeilingGegevens input, #VeilingGegevens2 input, #VeilingGegevens textarea, #VeilingGegevens2 textarea, #VeilingGegevens select, #VeilingGegevens2 select')
      for(var i=0;i<tags.length;i++) {
         tags[i].addEvent('change', function() {
            setAuctionChanged(true);
         });
      }
   }

   if($defined($('AgentAanbiederBiederDetails'))) {
      var tags = $$('#AgentAanbiederBiederDetails input, #AgentAanbiederBiederDetails2 input, #AgentAanbiederBiederDetails textarea, #AgentAanbiederBiederDetails2 textarea, #AgentAanbiederBiederDetails select, #AgentAanbiederBiederDetails2 select')
      for(var i=0;i<tags.length;i++) {
         tags[i].addEvent('change', function() {
            setAanbiederBiederAgentChanged(true);
         });
      }
   }

   initProductDetails();
   initContactpersoonDetails();
   initAfleverAdressen();
   initSelecteerBieders();

   // Adresvelden Disabled zetten bij factuuradres
   //
   if($defined($('factadr_is_bedradr'))) {
      AdresVeldenAanUit($('factadr_is_bedradr'));
   }

   // Init auto refresh op veiling overzichten
   var refresh_interval = 15; // in seconds

   // check for lastUpdate field
   if (document.getElementById('lastUpdate') && !document.location.href.match(/bieders/g))
     updateTime('lastUpdate');

   if (document.getElementById('VeilingenVeilingmeester')) {
     var veiling_refresh = setInterval("naarPagina('huidige');", refresh_interval * 1000);
   } else {
     // check if this is the veilingmeester
     if (!document.location.href.match(/bieders/g)) {
	     if (document.getElementById('LopendeVeilingen'))
	       var veiling_refresh_lopende = setInterval("repeat_last_sort('LopendeVeilingen');", refresh_interval * 1000);
	     if (document.getElementById('GeslotenVeilingen'))
	       var veiling_refresh_gesloten = setInterval("repeat_last_sort('GeslotenVeilingen');", refresh_interval * 1000);
     }
   }

   /* veiling details - 1e product automatisch openen */
   var clickElement = '';
   if (document.getElementById('productenoverzicht') && document.getElementById('productdetails'))
   	 clickElement = 'productenlijst';
   else if (document.getElementById('Contactpersonenlijst') && document.getElementById('Contactpersoondetails'))
     clickElement = 'Contactpersonenlijst';

   if (clickElement)
     execFirstTableRowOnclick(clickElement);

   if (document.location.search.indexOf('productinfo=1') != -1)
	 	document.location.href=document.location.href.replace(/\&productinfo\=1/g, '').concat('#product_info_anchor');

   if (document.getElementById('bod'))
   	document.getElementById('bod').onchange = function() {
			numberFormat(document.getElementById('bod').value);
   	}
});

function execFirstTableRowOnclick(element) {
  var el = document.getElementById(element);

   // row 2, cell 1
   if (navigator.userAgent.indexOf('MSIE') != -1)
   	var offset = 0;
   else
    var offset = 1;

   try {
    var obj = el.childNodes[0+offset].childNodes[1+offset];
    obj.onclick();
  } catch(e) {
  	 // catch errors
  }
}

function requestUri(){
	var uri = location.href;

	uri = uri.split('?');

	return uri[0];
}

var last_time;
function updateTime(field) {
	if (document.getElementById(field)) {
	  //dbe, remove flickering
	  document.getElementById(field).innerHTML = last_time;

    // server time
    var utime = new Json.Remote("/ajaxserver",{onComplete: function(resultaat){
     last_time = resultaat.HTML;
	   document.getElementById(field).innerHTML = last_time;
    }}).send({'actie': 'haalTijd'});

  // client time
  /*
	  var today = new Date;

	  var str = '';
	  str = str.concat(today.getDate(), '-');
	  str = str.concat(today.getMonth() + 1, '-');
	  str = str.concat(today.getFullYear(), ' ');
	  str = str.concat(today.getHours(), ':');
	  if (today.getMinutes() < 10) str = str.concat('0');
	  str = str.concat(today.getMinutes(), ':');
	  if (today.getSeconds() < 10) str = str.concat('0');
	  str = str.concat(today.getSeconds());

    document.getElementById(field).innerHTML = str;
  */
  }
}

function initSelecteerBieders() {
   var bieders = $$('#biedersselecteren tr.bieder').forEach(function(tag,index) {
      tag.addEvent('click', function() {
         $$('#'+this.id+' input').forEach(function(tag, index) {
            tag.checked = !tag.checked

            // Ook direct doorgeven aan de server dat je deze hebt geselecteerd of
            // gedeselecteerd, omdat als het filter wijzigt dezelfde items weer
            // geselecteerd moeten worden.
            //
            var id = tag.id.split('_')[1];
            var jSonRequest = new Json.Remote("/ajaxserver").send({'actie': 'selecteerBieder', 'id': id, 'checked': tag.checked});
         });


      });
   });

   // Ook bij het klikken op de input checkbox zelf
   var bieders2 = $$('#biedersselecteren input.bieder').forEach(function(tag,index) {
      tag.addEvent('click', function() {
         // Ook direct doorgeven aan de server dat je deze hebt geselecteerd of
         // gedeselecteerd, omdat als het filter wijzigt dezelfde items weer
         // geselecteerd moeten worden.
         //
         var id = tag.id.split('_')[1];
         var jSonRequest = new Json.Remote("/ajaxserver").send({'actie': 'selecteerBieder', 'id': id, 'checked': tag.checked});
      });
   });

}

function initAfleverAdressen() {
   // Afleveradres laden bij onchange van de selectbox (biederdetails)
   //
   if($defined($('afleveradres'))) {
      $('afleveradres').addEvent('change', function() {
         haalAfleveradres($('afleveradres').value);
      });
      $('afleveradres').setProperty('oudeIndex',$('afleveradres').selectedIndex);

      // In de onchange van de input velden changedAfleveradres op true zetten
      var tags = $$('#AfleveradresContainer input')
      for(var i=0;i<tags.length;i++) {
         tags[i].addEvent('change', function() {
            setAfleveradresChanged(true);
         });
      }
   }
}
function initProductDetails() {
   // een onchange aan alle product inputs meegeven zodat we kunnen checken of
   // er iets gewijzigd is
   //
   if($defined($('productdetails'))) {
      var tags = $$('#productdetails input, #productdetails textarea, #productdetails select')
      for(var i=0;i<tags.length;i++) {
         tags[i].addEvent('change', function() {
            setProductChanged(true);
         });
      }
   }
}
function initContactpersoonDetails() {
   // een onchange aan alle product inputs meegeven zodat we kunnen checken of
   // er iets gewijzigd is
   //
   if($defined($('Contactpersoondetails'))) {
      var tags = $$('#Contactpersoondetails input, #Contactpersoondetails textarea, #Contactpersoondetails select')
      for(var i=0;i<tags.length;i++) {
         tags[i].addEvent('change', function() {
            setContactChanged(true);
         });
      }
   }
}
function haalAfleveradres(afleveradres, confirmed) {
   // Haal het afleveradres op via ajax
   //
   if(afleveradresChanged && !confirmed) {
      var jSonRequest = new Json.Remote("/ajaxserver",{onComplete: function(resultaat) {
         if(confirm(resultaat.labels['tekst-weet u het zeker? uw wijzigingen zullen verloren gaan'])) {
            haalAfleveradres(afleveradres, true);
            setAfleveradresChanged(false);
         }else {
            // De selectbox weer terugzetten...
            //
            $('afleveradres').selectedIndex = $('afleveradres').getProperty('oudeIndex');
         }
      }}).send({'actie': 'haalLabels'});
   }else {
      var jSonRequest = new Json.Remote("/ajaxserver",{onComplete: function(resultaat) {
         $('AfleveradresContainer').innerHTML = resultaat.HTML;
         initAfleverAdressen();
      }}).send({'actie': 'haalAfleveradres', 'afleveradres': afleveradres});
   }
}
function SaveAfleveradres() {
      var jSonRequest = new Json.Remote("/ajaxserver",{onComplete: function(resultaat) {
         alert(resultaat.resultaattekst);
         setAfleveradresChanged(false);
      }}).send({'actie': 'SaveAfleveradres', 'volgorde': uescape($('afleveradres').value), 'adres':uescape($('aflever_adres').value), 'postcode':uescape($('aflever_postcode').value), 'plaats':uescape($('aflever_plaats').value), 'land_id':uescape($('aflever_land_id').value)});
}
function setSelected(obj, container) {
   // Het product dat geselecteerd is class selected geven
   //
   var rows = $$("#"+container+" tr");
   rows.forEach(function(tag, index) {
      if(obj == tag) {
         tag.addClass('selected');
      }else {
         tag.removeClass('selected');
      }
   });
}
function initShowHideDebugInfo() {
   var button = $$('.showHideDebugInfo');
   for(var i=0;i<button.length;i++) {
      button[i].addEvent('click', function(event){
         if($('DebugInfo').hasClass('debugopen')) {
            $('DebugInfo').removeClass('debugopen');
            $('DebugInfo').addClass('debugclosed');
            setDebugStatus(false);
         }else {
            $('DebugInfo').addClass('debugopen');
            $('DebugInfo').removeClass('debugclosed');
            setDebugStatus(true);
         }
      });
   }
}
function execSwitchLanguage(lang) {
	var uri = document.location.href.replace(/\/((en)|(nl)|(es)|(fr)|(de))\//g, '/##lang##/');
	if (uri.match(/##lang##/))
		uri = uri.replace('##lang##', lang);

	document.location.href = uri.replace(/#$/g, '');
}

function setTaal(taal) {
   var jSonRequest = new Json.Remote("/ajaxserver",{onComplete: function(resultaat) {
	 if (resultaat.url)
		 location.href = resultaat.url;
	 else
		 execSwitchLanguage(taal);
   }}).send({'actie': 'setTaal', 'taal': taal, 'pagina': escape(location.href)});
}

function uitloggen() {
   var jSonRequest = new Json.Remote("/ajaxserver",{onComplete: function(resultaat) {
      document.location.href="/"; // terug naar homepage
   }}).send({'actie': 'uitloggen'});
}

function bevestigBod(veilingnummer,confirmed){
	if(!confirmed) {
      var jSonRequest = new Json.Remote("/ajaxserver",{onComplete: function(resultaat) {
   	   if(confirm(resultaat.labels['tekst-weet u zeker dat u dit bod wilt uitbrengen?'])) {
            bevestigBod(veilingnummer, true);
         }
      }}).send({'actie': 'haalLabels'});
	}else {
      if(veilingnummer){
   		if (typeof(console) != 'undefined')
   			console.log($('akkoord').checked);

   		if($('akkoord').checked==true){
   		  var jSonRequest = new Json.Remote("/ajaxserver",{onComplete: function(resultaat) {
   		     //document.location.href="/"; // terug naar homepage
   				if (typeof(console) != 'undefined')
   		     	console.log(resultaat);
   		    if(!resultaat.gelukt) {
               alert(resultaat.errormelding);
             }
             // document.location.reload();
             setTimeout("document.location.href = './';", 200); // naar veilingoverzicht
   		  }}).send({'actie': 'bevestigBod','veilingnummer':veilingnummer,'bod':$('bod').value});
   		}else{
            var jSonRequest = new Json.Remote("/ajaxserver",{onComplete: function(resultaat) {
      			alert(resultaat.labels['tekst-bod niet geaccepteerd, u moet eerst akkoord gaan met de voorwaarde']);
            }}).send({'actie': 'haalLabels'});
   		}
   	}
   }
}

function setDebugStatus(status) {
   var jSonRequest = new Json.Remote("/ajaxserver").send({'actie': 'setDebugstatus', 'status': status});
}

function remove_link_lines() {
   document.getElements('a').addEvent('focus', function(){this.blur()});
}

function ToonProductDetails(product_id, containernaam) {
   var jSonRequest = new Json.Remote("/ajaxserver",{onComplete: function(resultaat) {
      $(containernaam).innerHTML = resultaat.HTML;
      TB_init();
   }}).send({'actie': 'geefProductDetails', 'product_id': product_id});
}
function ToonFormProductDetails(product_id, containernaam) {
   var conf = true;
   if(productChanged) {
      //conf = confirm("Weet je het zeker? Wijzigingen gaan verloren!");
      var jSonRequest = new Json.Remote("/ajaxserver",{onComplete: function(resultaat) {
         conf = confirm(resultaat.labels['tekst-Weet u het zeker? Wijzigingen gaan verloren!']);
      }}).send({'actie': 'haalLabels'});
   }
   if(conf) {
      setProductChanged(false);
      var jSonRequest = new Json.Remote("/ajaxserver",{onComplete: function(resultaat) {
         $(containernaam).innerHTML = resultaat.HTML;
         initProductDetails(); // onchanges toevoegen...

         // Smoothboxes opnieuw initialiseren anders doet de smoothbox voor
         // imageuploads het niet
         //
         TB_init();
      }}).send({'actie': 'geefFormProductDetails', 'product_id': product_id});
   }
}
function ToonContactpersoonDetails(contactpersoon_id, containernaam, type) {
   var jSonRequest = new Json.Remote("/ajaxserver",{onComplete: function(resultaat) {
      $(containernaam).innerHTML = resultaat.HTML;
   }}).send({'actie': 'geefContactpersoonDetails', 'contactpersoon_id': contactpersoon_id, 'Type':type});
}
function ToonFormContactpersoonDetails(contactpersoon_id, containernaam, type) {
   var conf = true;
   if(contactChanged) {
      //conf = confirm("Weet je het zeker? Wijzigingen gaan verloren!");
			var jSonRequest = new Json.Remote("/ajaxserver",{onComplete: function(resultaat) {
         conf = confirm(resultaat.labels['tekst-Weet u het zeker? Wijzigingen gaan verloren!']);
      }}).send({'actie': 'haalLabels'});
   }
   if(conf) {
      setContactChanged(false);
      var jSonRequest = new Json.Remote("/ajaxserver",{onComplete: function(resultaat) {
         $(containernaam).innerHTML = resultaat.HTML;
         initContactpersoonDetails(); // onchanges toevoegen...

         // Smoothboxes opnieuw initialiseren anders doet de smoothbox voor
         // status wijzigen het niet
         //
         TB_init();
      }}).send({'actie': 'geefFormContactpersoonDetails', 'contactpersoon_id': contactpersoon_id, 'Type':type});
   }
}
function reloadVeilingen(aanbieder_id) {
   var jSonRequest = new Json.Remote("/ajaxserver",{onComplete: function(resultaat) {
      $('veilingen').innerHTML = resultaat.HTML;
   }}).send({'actie': 'geefVeilingenVanAanbieder', 'aanbieder_id': aanbieder_id});
}
function NieuwProduct(containernaam) {
   ToonFormProductDetails(0, containernaam);
}
function NieuwContactpersoon(containernaam, type) {
   ToonFormContactpersoonDetails(0, containernaam, type);
}
function homecolumns_mouseover() {
   if(!($('naarveilingen'))) { return; }
   $E('ul', 'naarveilingen').style.top = '-180px';
   $E('ul', 'productaanbieden').style.top = '-180px';
   $E('ul', 'overideal').style.top = '-180px';
   // taal wordt globaal in de template geparsed...
   //
   $('naarveilingen').addEvents({
      'mouseenter': function(){
         $E('div.rollover', 'naarveilingen').effect('height',{
            duration: 300,
            transition: Fx.Transitions.Cubic.easeIn
         }).start(209);
         $E('ul', 'naarveilingen').effect('top',{
            duration: 300,
            transition: Fx.Transitions.Cubic.easeIn,
            onComplete: function () { $E('h2', 'naarveilingen').style.backgroundImage = 'url(/siteimg/bg_naarveilingen_over_'+taal+'.gif)'; }
         }).start(29);
      },
      'mouseleave': function(){
         $E('div.rollover', 'naarveilingen').effect('height',{
            duration: 300,
            transition: Fx.Transitions.Cubic.easeIn
         }).start(0);
         $E('ul', 'naarveilingen').effect('top',{
            duration: 300,
            transition: Fx.Transitions.Cubic.easeIn,
            onComplete: function () { $E('h2', 'naarveilingen').style.backgroundImage = 'url(/siteimg/bg_naarveilingen_'+taal+'.gif)'; }
         }).start(-180);
      }
   });

   $('productaanbieden').addEvents({
      'mouseenter': function(){
         $E('div.rollover', 'productaanbieden').effect('height',{
            duration: 300,
            transition: Fx.Transitions.Cubic.easeIn
         }).start(209);
         $E('ul', 'productaanbieden').effect('top',{
            duration: 300,
            transition: Fx.Transitions.Cubic.easeIn,
            onComplete: function () { $E('h2', 'productaanbieden').style.backgroundImage = 'url(/siteimg/bg_productaanbieden_over_'+taal+'.gif)'; }
         }).start(29);
      },
      'mouseleave': function(){
         $E('div.rollover', 'productaanbieden').effect('height',{
            duration: 300,
            transition: Fx.Transitions.Cubic.easeIn
         }).start(0);
         $E('ul', 'productaanbieden').effect('top',{
            duration: 300,
            transition: Fx.Transitions.Cubic.easeIn,
            onComplete: function () { $E('h2', 'productaanbieden').style.backgroundImage = 'url(/siteimg/bg_productaanbieden_'+taal+'.gif)'; }
         }).start(-180);
      }
   });

   $('overideal').addEvents({
      'mouseenter': function(){
         $E('div.rollover', 'overideal').effect('height',{
            duration: 300,
            transition: Fx.Transitions.Cubic.easeIn
         }).start(209);
         $E('ul', 'overideal').effect('top',{
            duration: 300,
            transition: Fx.Transitions.Cubic.easeIn,
            onComplete: function () { $E('h2', 'overideal').style.backgroundImage = 'url(/siteimg/bg_overideal_over_'+taal+'.gif)'; }
         }).start(29);
      },
      'mouseleave': function(){
         $E('div.rollover', 'overideal').effect('height',{
            duration: 300,
            transition: Fx.Transitions.Cubic.easeIn
         }).start(0);
         $E('ul', 'overideal').effect('top',{
            duration: 300,
            transition: Fx.Transitions.Cubic.easeIn,
            onComplete: function () { $E('h2', 'overideal').style.backgroundImage = 'url(/siteimg/bg_overideal_'+taal+'.gif)'; }
         }).start(-180);
      }
   });
}


function enable_languageselection() {
   if(!($('language'))) { return; }
   $('language').style.display = 'none';
   $('language_foldout').addEvent('click', function() {
      if ($('language').style.display == 'none') {
         $('language').style.display = 'block';
         if(!($('naarveilingen'))) { return; }
         $('naarveilingen').removeEvents();
         $('productaanbieden').removeEvents();
         $('overideal').removeEvents();
      } else {
         $('language').style.display = 'none';
         homecolumns_mouseover();
      }
   });
}


function subnav_init() {
   if(!($('subnav'))) { return; }
   var subnavitems = $ES('li', 'subnav');
   subnavitems.each(function(item) {
      item.addEvents({
         'mouseover': function(){
            item.className += ' hover';
            if($E('ul', item)) { $E('ul', item).style.display = 'block';}
         },
         'mouseout': function(){
            item.className = item.className.substring(0, item.className.length-6);
            if($E('ul', item)) { $E('ul', item).style.display = 'none';}
         }
      });
   });

   var subnavitemsmetsub = $ES('li.metsub', 'subnav');
   var submenus = $ES('ul', 'subnav');
   submenus.each(function(item) { item.style.display = 'none' });
   for (n=0;n<subnavitemsmetsub.length;n++) {
      var subsubitems = $ES('li', subnavitemsmetsub[n]);
      var w = subnavitemsmetsub[n].offsetWidth;
      subsubitems.each(function(item) { item.setStyle('min-width', w - 8) });
   }
}
var last_sort = new Array();

function sort(overzicht, veld, sorteervolgorde) {

	 last_sort[overzicht] = new Array();
	 last_sort[overzicht]['veld'] = veld;
	 last_sort[overzicht]['sorteervolgorde'] = sorteervolgorde;

   var sortering = new Json.Remote("/ajaxserver",{onComplete: function(resultaat){
      $(overzicht).innerHTML = resultaat.HTML;
	    updateTime('lastUpdate');
   }}).send({'actie': 'haalGesorteerdVeilingoverzicht', 'overzicht': overzicht, 'oField': veld, 'oOrder': sorteervolgorde, 'gebruikerstype':gebruikerstype});
}
function repeat_last_sort(overzicht) {
   var has_data = false
   try {
	   if (last_sort[overzicht].length > 1)
	     has_data = true;
	 } catch(e) {
	   has_data = false;
	 }
	 if (has_data == true)
	   sort(overzicht, last_sort[overzicht]['veld'], last_sort[overzicht]['sorteervolgorde']);
   else
     sort(overzicht, '', '');
}

function sortveilingmeester(overzicht, veld, sorteervolgorde, offset, limit) {
   var sortering = new Json.Remote("/ajaxserver",{onComplete: function(resultaat){
	   //check for lastUpdate field
		 if (document.getElementById('lastUpdate'))
				updateTime('lastUpdate');

      $(overzicht).innerHTML = resultaat.HTML;
      if($defined(resultaat.aantalResultaten)) {
         $('aantalResultaten').innerHTML = resultaat.aantalResultaten;

         $('trefwoord').removeClass('gezocht');
         $('status').removeClass('gezocht');
         $('land').removeClass('gezocht');
         $('aanbieder').removeClass('gezocht');
         $('trefwoord').removeClass('nietgevonden');
         $('status').removeClass('nietgevonden');
         $('land').removeClass('nietgevonden');
         $('aanbieder').removeClass('nietgevonden');

         if(zoekmethode=="trefwoord") {
            $('trefwoord').addClass(resultaat.resultClass);
         }else if(zoekmethode=="filter") {
            $('status').addClass(resultaat.resultClass);
            $('land').addClass(resultaat.resultClass);
            $('aanbieder').addClass(resultaat.resultClass);
         }
      }
   }}).send({'actie': 'haalGesorteerdVeilingoverzicht', 'overzicht': overzicht, 'oField': veld, 'oOrder': sorteervolgorde, 'offset': offset, 'limit': limit, 'fStatus': $('fStatus').value, 'fLand': $('fLand').value, 'fAanbieder': $('fAanbieder').value, 'fTrefwoord':$('fTrefwoord').value});
}

function sortAanbiederOverzicht(overzicht, veld, sorteervolgorde) {
   var sortering = new Json.Remote("/ajaxserver",{onComplete: function(resultaat){
      $(overzicht).innerHTML = resultaat.HTML;

   }}).send({'actie': 'haalGesorteerdAanbiederoverzicht', 'overzicht': overzicht, 'oField': veld, 'oOrder': sorteervolgorde});
}

function sortBiederOverzicht(overzicht, veld, sorteervolgorde) {
   var sortering = new Json.Remote("/ajaxserver",{onComplete: function(resultaat){
      $(overzicht).innerHTML = resultaat.HTML;

   }}).send({'actie': 'haalGesorteerdBiederoverzicht', 'overzicht': overzicht, 'oField': veld, 'oOrder': sorteervolgorde});
}

function sortBiederVeilingOverzicht(overzicht, veld, sorteervolgorde, veiling_id) {
   var sortering = new Json.Remote("/ajaxserver",{onComplete: function(resultaat){
      $(overzicht).innerHTML = resultaat.HTML;

   }}).send({'actie': 'haalGesorteerdbiederVeilingoverzicht', 'overzicht': overzicht, 'oField': veld, 'oOrder': sorteervolgorde, 'veiling_id':veiling_id});
}


function sortGebruikerOverzicht(overzicht, veld, sorteervolgorde) {
   var sortering = new Json.Remote("/ajaxserver",{onComplete: function(resultaat){
      $(overzicht).innerHTML = resultaat.HTML;

   }}).send({'actie': 'haalGesorteerdGebruikeroverzicht', 'overzicht': overzicht, 'oField': veld, 'oOrder': sorteervolgorde});
}


function sortbiederHistorieOverzicht(overzicht, veld, sorteervolgorde, veilingid) {
   var sortering = new Json.Remote("/ajaxserver",{onComplete: function(resultaat){
      $(overzicht).innerHTML = resultaat.HTML;

   }}).send({'actie': 'haalGesorteerdbiederHistorieoverzicht', 'overzicht': overzicht, 'oField': veld, 'oOrder': sorteervolgorde, 'veiling_id':veilingid});
}


function sortAgentenOverzicht(overzicht, veld, sorteervolgorde) {
   var sortering = new Json.Remote("/ajaxserver",{onComplete: function(resultaat){
      $(resultaat.overzicht).innerHTML = resultaat.HTML;

   }}).send({'actie': 'haalGesorteerdGebruikeroverzicht', 'overzicht': overzicht, 'oField': veld, 'oOrder': sorteervolgorde});
}

function filterAanbiederOverzicht(overzicht, filter_type, filter) {
   if(filter_type=='keyword') {
      waarde =   $('keyword').value;
   }else if(filter_type=='reset'){
      waarde = '';
      $('keyword').value='';
      filter_type = 'keyword';
   } else {
      waarde = filter.value;
   }

   var sortering = new Json.Remote("/ajaxserver",{onComplete: function(resultaat){
      $(overzicht).innerHTML = resultaat.HTML;

   }}).send({'actie': 'haalGefilterdAanbiederoverzicht', 'filter_type': filter_type, 'filter': waarde, 'overzicht': overzicht});
}


function filterBiederOverzicht(overzicht, filter_type, filter) {

   if(filter_type=='keyword') {
      waarde =   $('keyword').value;
   }else if(filter_type=='reset'){
      waarde = '';
      $('keyword').value='';
      filter_type = 'keyword';
   } else {
      waarde = filter.value;
   }


   var sortering = new Json.Remote("/ajaxserver",{onComplete: function(resultaat){
      $(overzicht).innerHTML = resultaat.HTML;

   }}).send({'actie': 'haalGefilterdBiederoverzicht', 'filter_type': filter_type, 'filter': waarde, 'overzicht': overzicht});
}

function filterAgentenOverzicht(overzicht, filter_type, filter) {


   if(filter_type=='keyword') {
         waarde =   $('keyword').value;
   }else if(filter_type=='reset'){
      waarde = '';
      $('keyword').value='';
      filter_type = 'keyword';
   } else {
         waarde = filter.value;
    }


   var sortering = new Json.Remote("/ajaxserver",{onComplete: function(resultaat){
      $(overzicht).innerHTML = resultaat.HTML;

   }}).send({'actie': 'haalGefilterdAgentenoverzicht', 'filter_type': filter_type, 'filter': waarde, 'overzicht': overzicht});
}


function clearResults() {
   $('trefwoord').removeClass('gezocht');
   $('status').removeClass('gezocht');
   $('land').removeClass('gezocht');
   $('aanbieder').removeClass('gezocht');
   $('trefwoord').removeClass('nietgevonden');
   $('status').removeClass('nietgevonden');
   $('land').removeClass('nietgevonden');
   $('aanbieder').removeClass('nietgevonden');

   $('aantalResultaten').innerHTML = "0";
   $('VeilingenZoeken').reset();
   $('Lijst').innerHTML = "";
   $('Paging').style.display = "none";
   $('PagingSettings').style.display = "none";
}

function naarPagina(pagina) {
   var offset;
   var limit = parseInt($('limit').value);

   switch (pagina) {
     case 'vorige':
       offset = parseInt($('offset').value) - limit;
       break;
     case 'volgende':
       offset = parseInt($('offset').value) + limit;
       break;
     case 'huidige':
       offset = parseInt($('offset').value);
       break;
     default:
       offset = (limit * pagina) - limit;
   }
   sortveilingmeester('VeilingenVeilingmeester', $('oField').value, $('oOrder').value, offset, limit)
}

function updateAanbieders(land) {
   var jSonRequest = new Json.Remote("/ajaxserver",{onComplete: function(resultaat) {
      $('aanbieders').innerHTML = resultaat.HTML;
      $('aanbieder').className = $('land').className;
   }}).send({'actie': 'getAanbiedersInLand', 'land_id': land.value, 'huidigeaanbieder': $('aanbieder').value});
}

var zoekmethode = "";
function haalDataMetFilter() {
   // Stel hidden fields in op de nieuwe data
   //
   $('fStatus').value    = $('status').value;
   $('fLand').value      = $('land').value;
   $('fAanbieder').value = $('aanbieder').value;
   $('fTrefwoord').value = "";
   zoekmethode = "filter";

   // ga vervolgens naar pagina 1
   //
   naarPagina(1);
}
function verplaatsProducten() {
   // De geselecteerde producten uit de perent ophalen
   //
   var producten = parent.$$('#productenoverzicht td input'),
       idlist    = '';
   producten.forEach(function(tag,index) {
      if(tag.checked) {
         idlist += tag.value+',';
      }
   });
   var jSonRequest = new Json.Remote("/ajaxserver",{onComplete: function(resultaat) {
      alert(resultaat.resultaattekst);
      parent.document.location.reload();
   }}).send({'actie': 'verplaatsProducten', 'idlist': idlist, 'veiling_id':$('veiling_id').value, 'naam':$('naam').value});

}
function ShowHideVeilingNaamVeld(selObj) {
   if(selObj.value =='-1') {
      $('veilingnaamcontainer').setStyle('display','block');
   }else {
      $('naam').value = '';
      $('veilingnaamcontainer').setStyle('display','none');
   }
}
function openAfdrukvenster(id, code) {
   if($defined(code)) {
      code = '&code='+code;
   }
   var afdrukvenster = window.open('/veilingen/printveiling?veiling_id='+id+code,'printview','scrollbars=1,status=1,resizable=1,location=0,titlebar=0,menubar=1,width=1024,height=600,left=30,top=30')
}
function openExcelVenster(id) {
   var afdrukvenster = window.open('/veilingen/exportexcel?veiling_id='+id,'printview','scrollbars=1,status=1,resizable=1,location=0,titlebar=0,menubar=1,width=1,height=1,left=30,top=30')
}
function openFotoDownloadVenster(id) {
   var afdrukvenster = window.open('/veilingen/fotodownload?veiling_id='+id,'printview','scrollbars=1,status=1,resizable=1,location=0,titlebar=0,menubar=1,width=1024,height=600,left=30,top=30')
}

function zetVeilingEnTaal() {
   // Bij het uploaden van het excelsheet de ingevulde veiling en taal
   // erbij halen uit de parent
   //
   $('veilingnummer').value = parent.document.getElementById('veilingnummer').value;
   $('taal_id').value = parent.document.getElementById('taal_id').value;
}
var taal_selectedIndex;
var veilingnummer_selectedIndex;
window.addEvent('domready', function() {
   if($('taal_id')) {
      taal_selectedIndex = $('taal_id').selectedIndex;
   }
   if($('veilingnummer')) {
      veilingnummer_selectedIndex = $('veilingnummer').selectedIndex;
   }
})
function zetVeilingtaal(obj) {
   var jSonRequest = new Json.Remote("/ajaxserver",{onComplete: function(resultaat) {
      if(resultaat.HTML != '') {
         if(resultaat.gelukt) {
            // we hebben de nieuwe knop voor uploaden teruggekregen...
            //
            $('uploadbutton').innerHTML = resultaat.HTML;
            TB_init(); // Smoothbox moet opnieuw geinitialiseerd worden omdat die knop vervangen is
            taal_selectedIndex = $('taal_id').selectedIndex;
         }else {
            $('taal_id').selectedIndex = taal_selectedIndex; // Oude waarde terugzetten...
            if($defined(resultaat.errormelding)) {
               alert(resultaat.errormelding);
            }
         }
      }
   }}).send({'actie': 'zetVeilingTaal', 'taal_id': obj.value});
}

function ShowVeilingInTaal(veiling_id, taal_id) {
   document.location.href = '/veilingen/veiling?veiling_id='+veiling_id+'&taal_id='+taal_id;
}

function zetVeilingnummer(obj) {
   var jSonRequest = new Json.Remote("/ajaxserver",{onComplete: function(resultaat) {
      if(resultaat.isGeupload) {
         alert(resultaat.errormelding);
         obj.selectedIndex = veilingnummer_selectedIndex;
      }
   }}).send({'actie': 'isVeilingGeupload', 'errorlabel': 'tekst-om de veiling als taal aan een andere veiling te koppelen dient u hem opnieuw te uploaden'});
}
function bevestigOverschrijvenEnSubmit(form) {
   // We vragen eerst via ajax of deze taal al bestaat voor de geselecteerde veiling
   //
   var result = false;
   if($('veilingnummer').value > 0) {
      var jSonRequest = new Json.Remote("/ajaxserver",{onComplete: function(resultaat) {
         if(resultaat.heeftTaal) {
            if(confirm(resultaat.confirmtekst)) {
               $(resultaat.form).submit();
            }else {
               parent.TB_remove();
            }
         }else {
            $(resultaat.form).submit();
         }
      }}).send({'actie': 'getHeeftVeilingTaalAl', 'veilingnummer': $('veilingnummer').value, 'taal_id': $('taal_id').value, 'form': form});
   }else {
      $(form).submit();
   }
   return result;
}
function reloadImages(product_id) {
   // Wanneer er een plaatje is geupload moet de smoothbox worden gesloten en via
   // ajax de plaatjes opnieuw worden geladen. Een page reload kan niet omdat je
   // dan de formulierdata weer kwijt bent.
   //
   var jSonRequest = new Json.Remote("/ajaxserver",{onComplete: function(resultaat) {
      $('fotos').innerHTML = resultaat.HTML;
      TB_remove();
      // TB_init(); // Aangezien de afbeeldingen gerefreshed zijn moeten die smoothboxes opnieuw geinitialiseerd worden.
      var inputs = $$('#productdetails input');
      for(input in inputs) {
        input.onmousedown = function() {
           this.focus();
       }
		 }
   }}).send({'actie': 'haalFormVeilingDetailsAfbeeldingen', 'product_id': product_id, 'taal_id': $('taal_id').value});
}
function reloadVoorwaarden(veiling_id) {
   // Wanneer er een voorwaardenbestand is geupload moet de smoothbox worden gesloten en via
   // ajax de lijst met voorwaarden opnieuw worden geladen. Een page reload kan niet omdat je
   // dan de formulierdata weer kwijt bent.
   //
   var jSonRequest = new Json.Remote("/ajaxserver",{onComplete: function(resultaat) {
      $('VoorwaardenLijst').innerHTML = resultaat.HTML;
      if($defined($("TB_overlay"))) {
         TB_remove();
      }
      TB_init();
   }}).send({'actie': 'haalFormVeilingDetailsVoorwaarden', 'veiling_id': veiling_id});
}
function DeleteVoorwaarden(voorwaarde_id, confirmed) {
   var jSonRequest = new Json.Remote("/ajaxserver",{onComplete: function(resultaat) {
      if(resultaat.verwijderd) {
         reloadVoorwaarden(resultaat.veiling_id);
      }else if(resultaat.confirmtekst != '') {
         if(confirm(resultaat.confirmtekst)) {
            DeleteVoorwaarden(voorwaarde_id, true);
         }
      }
   }}).send({'actie': 'VerwijderVoorwaarden', 'voorwaarde_id': voorwaarde_id, 'confirmed': confirmed});
}
var productChanged = false;
function setProductChanged(state) {
   productChanged = state;
}
var auctionChanged = false;
function setAuctionChanged(state) {
   auctionChanged = state;
}
var contactChanged = false;
function setContactChanged(state) {
   contactChanged = state;
}
var aanbiederBiederAgentChanged = false;
function setAanbiederBiederAgentChanged(state) {
   aanbiederBiederAgentChanged = state;
}
var afleveradresChanged = false;
function setAfleveradresChanged(state) {
   afleveradresChanged = state;
}

function SaveProduct(id) {
   var productdetails = $$('#productdetails input, #productdetails textarea');

   var details = Array();
   var temp = '';
   for(var i=0;i<productdetails.length;i++) {
      details[details.length] = {'name': productdetails[i].name, 'value':uescape(productdetails[i].value) }
   }
   var jSonRequest = new Json.Remote("/ajaxserver",{onComplete: function(resultaat) {
      if(resultaat.gelukt) {
         alert(resultaat.resultaattekst);
         refreshProductenOverzicht('productenoverzicht',id);
         // Laad formulier opnieuw zodat nu ook plaatjes toegevoegd kunnen worden.
         // Het id is inmiddels namelijk ook voor nieuwe producten bekend...
         //
         setProductChanged(false);
         ToonFormProductDetails(resultaat.product_id, 'productdetails');
      }else {
         alert(resultaat.errormelding);
      }
   }}).send({'actie': 'SaveProduct', 'product_id': id, 'productdetails': details});
}
function SaveContactpersoon(id, type) {
   var contactdetails     = $$('#Contactpersoondetails input, #Contactpersoondetails select'),
       details            = Array(),
       validatevoornaam   = false,
       validateachternaam = false,
       validateemail      = false;
   for(var i=0;i<contactdetails.length;i++) {
			contactdetails[i].value = uescape(contactdetails[i].value);
      if(contactdetails[i].name == "voornaam") validatevoornaam = (contactdetails[i].value != "");
      if(contactdetails[i].name == "achternaam") validateachternaam = (contactdetails[i].value != "");
      if(contactdetails[i].name == "mobiel") validatemobiel = (contactdetails[i].value != "");
      if(contactdetails[i].name == "email") {
         if(contactdetails[i].value != "") {
            validateemail = ValidateEmail(contactdetails[i].value)
         }else {
            validateemail = false;
         }
      }
      details[details.length] = {'name': contactdetails[i].name, 'value':contactdetails[i].value }
   }
   if(validatevoornaam && validateachternaam && validateemail && validatemobiel) {
      var jSonRequest = new Json.Remote("/ajaxserver",{onComplete: function(resultaat) {
         if(resultaat.gelukt) {
            setContactChanged(false);
            refreshContactpersonenOverzicht('Contactpersonenoverzicht', type);
            ToonFormContactpersoonDetails(resultaat.contactpersoon_id, 'Contactpersoondetails', type);
            alert(resultaat.resultaattekst);
         }
      }}).send({'actie': 'SaveContactpersoon', 'contactpersoon_id': id, 'contactdetails': details, 'type':type});
   }else {
      var jSonRequest = new Json.Remote("/ajaxserver",{onComplete: function(resultaat) {
         alert(resultaat.labels['tekst-controleer uw invoer']);
      }}).send({'actie': 'haalLabels'});
   }
}
function DeleteContactpersoon(contactpersoon_id,type,confirmed) {
   // Contactpersoon verwijderen
   //
   var jSonRequest = new Json.Remote("/ajaxserver",{onComplete: function(resultaat) {
      if(resultaat.confirmtekst != '') {
         if(confirm(resultaat.confirmtekst)) {
            DeleteContactpersoon(contactpersoon_id,type,true);
         }
      }else {
         if(resultaat.gelukt) {
            refreshContactpersonenOverzicht('Contactpersonenoverzicht', type);
            ToonFormContactpersoonDetails(0, 'Contactpersoondetails', type);
         }else {
            alert(resultaat.errormelding);
         }
      }
   }}).send({'actie': 'DeleteContactpersoon', 'confirmed': confirmed, 'contactpersoon_id':contactpersoon_id});
}
function maakContactActief(id, state) {
   var jSonRequest = new Json.Remote("/ajaxserver").send({'actie': 'maakContactActief','id':id,'state':state});
}
function WaarschuwOpslaan() {
   var result = true;
   if(productChanged || auctionChanged || contactChanged) {
      var jSonRequest = new Json.Remote("/ajaxserver",{onComplete: function(resultaat) {
         alert(resultaat.labels['tekst-u heeft wijzigingen in de veiling aangebracht']);
      }}).send({'actie': 'haalLabels'});
      result = false;
   }
   return result;
}

function refreshProductenOverzicht(container,selected_id) {
   var jSonRequest = new Json.Remote("/ajaxserver",{onComplete: function(resultaat) {
      $(resultaat.container).innerHTML = resultaat.HTML;
      if($('vraagprijs') && $('vraagprijsaangepast').checked==false)
      $('vraagprijs').value = resultaat.totaalprijs;
   }}).send({'actie': 'haalProductenOverzicht', 'container': container, 'selected_id':selected_id});
}

function refreshContactpersonenOverzicht(container, type) {
   var jSonRequest = new Json.Remote("/ajaxserver",{onComplete: function(resultaat) {
      $(resultaat.container).innerHTML = resultaat.HTML;
   }}).send({'actie': 'haalContactpersonenOverzicht', 'container': container, 'Type': type});
}

function DeleteSelected() {
   // bepaal de id's van de geselecteerde items (producten bij uploadexcel form)
   //
   var producten = $$('#productenoverzicht input');
   var productidlist = Array();
   producten.forEach(function(inputtag, index) {
      if((inputtag.type == 'checkbox') && (inputtag.checked)) {
         productidlist.push(inputtag.value);
      }
   });

   // ToDo: Confirm inbouwen zie ook annuleerVeiling hieronder...

   // Verwijder ze middels een ajaxrequest
   //
   var jSonRequest = new Json.Remote("/ajaxserver",{onComplete: function(resultaat) {
      refreshProductenOverzicht('productenoverzicht');
   }}).send({'actie': 'DeleteProducts', 'productidlist': productidlist});
}
function VeilingGoedkeuren(confirmed) {
   // Controleer of er niet iets is gewijzigd dat nog moet worden opgeslagen
   //
   if(productChanged) {
      var jSonRequest = new Json.Remote("/ajaxserver",{onComplete: function(resultaat) {
         alert(resultaat.labels['tekst-u heeft wijzigingen in het product aangebracht.']);
      }}).send({'actie': 'haalLabels'});
   }else if(auctionChanged) {
      var jSonRequest = new Json.Remote("/ajaxserver",{onComplete: function(resultaat) {
         alert(resultaat.labels['tekst-u heeft wijzigingen in de veiling aangebracht']);
      }}).send({'actie': 'haalLabels'});
   }else {
      var jSonRequest = new Json.Remote("/ajaxserver",{onComplete: function(resultaat) {
         if(resultaat.confirmtekst != '') {
            if(confirm(resultaat.confirmtekst)) {
               VeilingGoedkeuren(true);
            }
         }else {
            if(resultaat.gelukt) {
               alert(resultaat.resultaattekst);
               document.location.href = "/veilingen"; // Terug naar het overzicht
            }else {
               alert(resultaat.errormelding);
            }
         }
      }}).send({'actie': 'VeilingTerGoedkeuring', 'confirmed': confirmed});
   }
}
function VerwijderBiederVanVeiling(bieder_id,veiling_id) {
   var jSonRequest = new Json.Remote("/ajaxserver",{onComplete: function(resultaat) {
      if(confirm(resultaat.labels['tekst-weet u zeker dat u de relatie tussen deze bieder en deze veiling wilt verwijderen'])) {
         var jSonRequest = new Json.Remote("/ajaxserver",{onComplete: function(resultaat) {
            document.location.reload();
         }}).send({'actie': 'verwijderBiederVanVeiling', 'veiling_id':veiling_id, 'bieder_id':bieder_id});
      }
   }}).send({'actie': 'haalLabels'});
}

function VerwijderBodVanVeiling(bod_id,veiling_id) {
   var jSonRequest = new Json.Remote("/ajaxserver",{onComplete: function(resultaat) {
      if(confirm(resultaat.labels['tekst-weet u zeker dat u dit bod wilt verwijderen'])) {
         var jSonRequest = new Json.Remote("/ajaxserver",{onComplete: function(resultaat) {
            document.location.reload();
         }}).send({'actie': 'verwijderBodVanVeiling', 'veiling_id':veiling_id, 'bod_id':bod_id});
      }
   }}).send({'actie': 'haalLabels'});
}

function AccepteerHoogsteBod(confirmed) {
   var jSonRequest = new Json.Remote("/ajaxserver",{onComplete: function(resultaat) {
      if(resultaat.confirmtekst) {
         if(confirm(resultaat.confirmtekst)) {
            AccepteerHoogsteBod(true);
         }
      }else {
         alert(resultaat.resultaattekst);
         // Ga terug naar het veilingoverzicht
         document.location.href = '/veilingen';
      }
   }}).send({'actie': 'accepteerHoogsteBod', 'confirmed': confirmed});
}
function HoogsteBodNietAccepteren(confirmed) {
   var jSonRequest = new Json.Remote("/ajaxserver",{onComplete: function(resultaat) {
      if(resultaat.confirmtekst) {
         if(confirm(resultaat.confirmtekst)) {
            HoogsteBodNietAccepteren(true);
         }
      }else {
         alert(resultaat.resultaattekst);
         // Ga terug naar het veilingoverzicht
         document.location.href = '/veilingen';
      }
   }}).send({'actie': 'BodNietAccepterenMaarSluiten', 'confirmed': confirmed});
}
function VeilingHeropenen(confirmed) {
   var jSonRequest = new Json.Remote("/ajaxserver",{onComplete: function(resultaat) {
      if(resultaat.confirmtekst) {
         if(confirm(resultaat.confirmtekst)) {
            VeilingHeropenen(true);
         }
      }else {
         alert(resultaat.resultaattekst);
         // Ga terug naar het veilingoverzicht
         document.location.href = '/veilingen';
      }
   }}).send({'actie': 'VeilingHeropenen', 'confirmed': confirmed});
}

function MoveSelected() {
   alert('ToDo: Verplaatsen nog niet ingebouwd.');
}
function StatusWijzigen(type, id) {
   var status = $('status').value;
   var jSonRequest = new Json.Remote("/ajaxserver",{onComplete: function(resultaat) {
      // Smoothbox weer sluiten
      if(resultaat.gelukt) {
         alert(resultaat.resultaattekst);
         parent.document.location.reload();
      }else {
         alert(resultaat.errormelding);
         parent.TB_remove();
      }
      /*
      if(type == 'Aanbieder' || type == 'Bieder' || type == 'Agent') {
         //parent.document.getElementById('status').innerHTML = status;
      }else {
         parent.document.location.reload();
      }
      parent.TB_remove();
      */
   }}).send({'actie': type+'StatusWijzigen', 'status': status, 'id': id});
}
function VeilingOpenen() {
   if(productChanged) {
      var jSonRequest = new Json.Remote("/ajaxserver",{onComplete: function(resultaat) {
         alert(resultaat.labels['tekst-u heeft wijzigingen in het product aangebracht.']);
      }}).send({'actie': 'haalLabels'});
   }else if(auctionChanged) {
      var jSonRequest = new Json.Remote("/ajaxserver",{onComplete: function(resultaat) {
         alert(resultaat.labels['tekst-u heeft wijzigingen in de veiling aangebracht']);
      }}).send({'actie': 'haalLabels'});
   }else {
   	var str = '';
      var jSonRequest = new Json.Remote("/ajaxserver",{onComplete: function(resultaat) {
         str = resultaat.labels['tekst-weet u zeker dat u de veiling wilt openen'];
		if (confirm(str) == true) {
		 //fix
		 setInterval("document.body.style.cursor = 'wait';", 200);
		
	      var jSonRequest = new Json.Remote("/ajaxserver",{onComplete: function(resultaat) {
	         if(resultaat.gelukt) {
	            alert(resultaat.resultaattekst);
	         }else {
	            alert(resultaat.errormelding);
	         }
	         document.location.reload();
	      }}).send({'actie': 'VeilingOpenen'});
	}
        
      }}).send({'actie': 'haalLabels'});
   }
}
function SaveVeiling() {
   // De algemene veilingegevens ook meesturen zodat ook deze opgeslagen worden
   //
   var formdata = Array();
   var obj = $$('#VeilingGegevens input, #VeilingGegevens textarea, #VeilingGegevens select, #VeilingGegevens2 input, #VeilingGegevens2 textarea, #VeilingGegevens2 select');
   obj.forEach(function(tag, index) {
   		if (tag.name == 'vraagprijs' || tag.name == 'extraprijs') {
   			tag.value = tag.value.replace(/\./g, '').replace(/,/g, '.');
   		}

      formdata.push({'name':tag.name, 'value':uescape(tag.value), 'checked':tag.checked, 'type':tag.type});
   });

   if(productChanged) {
      //indien de productdetails nog gewijzigd en niet opgeslagen zijn, dit melden
      //
      var jSonRequest = new Json.Remote("/ajaxserver",{onComplete: function(resultaat) {
         alert(resultaat.labels['tekst-u heeft wijzigingen in het product aangebracht.']);
      }}).send({'actie': 'haalLabels'});
   }else {
      var jSonRequest = new Json.Remote("/ajaxserver",{onComplete: function(resultaat) {
         if(resultaat.gelukt) {
            alert(resultaat.resultaattekst);
            document.location.reload();
         }else {
            alert(resultaat.errormelding);
         }
      }}).send({'actie': 'VeilingOpslaan', 'formdata':formdata});
   }
}
function SaveAgentAanbiederBieder(type, nieuw) {
   // De algemene gegevens meesturen zodat deze opgeslagen worden
   //
   var formdata = Array();
   var obj = $$('#AgentAanbiederBiederDetails input, #AgentAanbiederBiederDetails textarea, #AgentAanbiederBiederDetails select, #AgentAanbiederBiederDetails2 input, #AgentAanbiederBiederDetails2 textarea, #AgentAanbiederBiederDetails2 select, #toelichtingafzetkanalen, #categorieen input');
   obj.forEach(function(tag, index) {
      formdata.push({'name':tag.name, 'value':uescape(tag.value), 'checked':tag.checked, 'type':tag.type});
   });

   if(afleveradresChanged) {
      //indien de contactdetails nog gewijzigd en niet opgeslagen zijn, dit melden
      //
      var jSonRequest = new Json.Remote("/ajaxserver",{onComplete: function(resultaat) {
         alert(resultaat.labels['tekst-u heeft wijzigingen in het afleveradres aangebracht.']);
      }}).send({'actie': 'haalLabels'});
   }else if(contactChanged) {
      //indien de contactdetails nog gewijzigd en niet opgeslagen zijn, dit melden
      //
      var jSonRequest = new Json.Remote("/ajaxserver",{onComplete: function(resultaat) {
         alert(resultaat.labels['tekst-u heeft wijzigingen in de contactgegevens aangebracht.']);
      }}).send({'actie': 'haalLabels'});
   }else {
      var jSonRequest = new Json.Remote("/ajaxserver",{onComplete: function(resultaat) {
         if(resultaat.gelukt) {
            alert(resultaat.resultaattekst);

            if(nieuw=='ja'){
          	  	document.location.href=requestUri()+'?'+type.toLowerCase()+'_id='+resultaat.id;
            }else{
            	document.location.reload();
            }
         }else {
            alert(resultaat.errormelding);
         }
      }}).send({'actie': 'SaveAgentAanbiederBieder', 'formdata':formdata, 'Type':type, 'nieuw':nieuw});
   }
}
function RegistreerAgentAanbiederBieder(type, confirmed) {
   if(!confirmed) {
      var jSonRequest = new Json.Remote("/ajaxserver",{onComplete: function(resultaat) {
         if(confirm(resultaat.labels['tekst-alle contactpersonen zullen per e-mail een nieuw wachtwoord ontvangen. weet u het zeker?'])) {
            RegistreerAgentAanbiederBieder(type, true);
         }
      }}).send({'actie': 'haalLabels'});
   }else {
      var jSonRequest = new Json.Remote("/ajaxserver",{onComplete: function(resultaat) {
         alert(resultaat.resultaattekst);

         // Pagina verversen zodat de knop 'registreren' verdwijnt
         //
         document.location.reload();
      }}).send({'actie': 'registreer'+type});
   }
}
function StuurWachtwoord(id, overzicht, confirmed) {
   if(!confirmed) {
      var jSonRequest = new Json.Remote("/ajaxserver",{onComplete: function(resultaat) {
         if(confirm(resultaat.labels['tekst-de contactpersoon zal per e-mail een nieuw wachtwoord ontvangen. weet u het zeker?'])) {
            StuurWachtwoord(id, overzicht, true);
         }
      }}).send({'actie': 'haalLabels'});
   }else {
      var jSonRequest = new Json.Remote("/ajaxserver",{onComplete: function(resultaat) {
         alert(resultaat.resultaattekst);
      }}).send({'actie': 'StuurContactNieuwWachtwoord', 'id': id});
   }
}
var globaltype = null;
function DeleteAgentAanbiederBieder(type, confirmed) {
   globaltype = type;
   if(!confirmed) {
      var jSonRequest = new Json.Remote("/ajaxserver",{onComplete: function(resultaat) {
         if(confirm(resultaat.labels['tekst-weet u zeker dat u deze '+globaltype+' wilt verwijderen?'])) {
            DeleteAgentAanbiederBieder(type, true);
         }
      }}).send({'actie': 'haalLabels'});
   }else {
      var jSonRequest = new Json.Remote("/ajaxserver",{onComplete: function(resultaat) {
         alert(resultaat.resultaattekst);
         document.location.href = resultaat.overzicht;
      }}).send({'actie': 'delete'+type});
   }
}
function AnnuleerAgentAanbiederBieder(type, confirmed) {
   if((aanbiederBiederAgentChanged || contactChanged) && !confirmed) {
      var jSonRequest = new Json.Remote("/ajaxserver",{onComplete: function(resultaat) {
         if(confirm(resultaat.labels['tekst-weet u het zeker? uw wijzigingen zullen verloren gaan'])) {
            AnnuleerAgentAanbiederBieder(type, true);
         }
      }}).send({'actie': 'haalLabels'});
   }else {
      // terug naar het overzicht
      //
      switch(type) {
         case "Agent":
            document.location.href = '/agenten';
            break;
         case "Aanbieder":
            document.location.href = '/aanbieders';
            break;
         case "Bieder":
            document.location.href = '/bieders';
            break;
         default:
            alert('error unknown type:'+type);
      }
   }
}
function AdresVeldenAanUit(checkbox) {
  try {
   if(checkbox.checked) {
      $('fact_adres').value    = '';
      $('fact_postcode').value = '';
      $('fact_plaats').value   = '';
      $('fact_land_id').selectedIndex  = 0;
   }
   $('fact_adres').disabled    = (checkbox.checked);
   $('fact_postcode').disabled = (checkbox.checked);
   $('fact_plaats').disabled   = (checkbox.checked);
   $('fact_land_id').disabled  = (checkbox.checked);
  } catch(e) {
   //foo
  }
}
function AnnuleerVeiling(confirmed) {
   // Vanuit het upload formulier de huidige veiling annuleren
   //
   var jSonRequest = new Json.Remote("/ajaxserver",{onComplete: function(resultaat) {
      if(resultaat.confirmtekst != '') {
         if(confirm(resultaat.confirmtekst)) {
            AnnuleerVeiling(true);
         }
      }else {
         if(resultaat.gelukt) {
            document.location.reload();
         }else {
            alert(resultaat.errormelding);
         }
      }
   }}).send({'actie': 'AnnuleerVeiling', 'confirmed': confirmed});
}
function VerwijderVeiling(confirmed) {
   // Vanuit het upload formulier de huidige veiling annuleren
   //
   var jSonRequest = new Json.Remote("/ajaxserver",{onComplete: function(resultaat) {
      if(resultaat.confirmtekst != '') {
         if(confirm(resultaat.confirmtekst)) {
            VerwijderVeiling(true);
         }
      }else {
         if(resultaat.gelukt) {
            document.location.href='/veilingen';
         }else {
            alert(resultaat.errormelding);
         }
      }
   }}).send({'actie': 'AnnuleerVeiling', 'confirmed': confirmed});
}
function VerzendVeilingNaarVeilingmeester(confirmed) {
   if(confirmed) {
      // De algemene veilingegevens ook meesturen zodat ook deze opgeslagen worden
      //
      var formdata = Array();
      var obj = $$('#VeilingGegevens input, #VeilingGegevens textarea');
      obj.forEach(function(tag, index) {
         formdata.push({'name':tag.name, 'value':uescape(tag.value)});
      });
   }

   var jSonRequest = new Json.Remote("/ajaxserver",{onComplete: function(resultaat) {
      if(resultaat.confirmtekst != '') {
         if(confirm(resultaat.confirmtekst)) {
            //indien de productdetails nog gewijzigd en niet opgeslagen zijn, dit doorgeven
            //
            if(productChanged) {
               alert(resultaat.productChangedTekst);
            }else {
               VerzendVeilingNaarVeilingmeester(true);
            }
         }
      }else {
         if(resultaat.gelukt) {
            alert(resultaat.resultaattekst);
            document.location.reload();
         }else {
            alert(resultaat.errormelding);
         }
      }
   }}).send({'actie': 'VerzendVeilingNaarVeilingmeester', 'confirmed': confirmed, 'formdata':formdata});
}
function MarkeerCheckboxen(container) {
   var tags = $$('#'+container+' input');
   for(var i=0;i<tags.length;i++) {
      if(tags[i].type == 'checkbox') {
         tags[i].checked = true;
      }
   }
}
function DemarkeerCheckboxen(container) {
   var tags = $$('#'+container+' input');
   for(var i=0;i<tags.length;i++) {
      if(tags[i].type == 'checkbox') {
         tags[i].checked = false;
      }
   }
}
function filterOpslaan() {
   var naam = $('naam').value;
   var jSonRequest = new Json.Remote("/ajaxserver",{onComplete: function(resultaat) {
      // standaardselecties opnieuw laden...
      //
      var jSonRequest = new Json.Remote("/ajaxserver",{onComplete: function(resultaat) {
         parent.$('standaardfilters').innerHTML = resultaat.HTML;
         parent.TB_remove();
      }}).send({'actie': 'haalStandaardfilters', 'id':resultaat.id});

      // ToDo:
   }}).send({'actie': 'saveBiederfilter', 'naam':naam});
}
function biederselectieOpslaan() {
   var naam = $('naam').value;
   var jSonRequest = new Json.Remote("/ajaxserver",{onComplete: function(resultaat) {
      // standaardselecties opnieuw laden...
      //
      var jSonRequest = new Json.Remote("/ajaxserver",{onComplete: function(resultaat) {
         parent.$('standaardselecties').innerHTML = resultaat.HTML;
         parent.TB_remove();
      }}).send({'actie': 'haalStandaardbiederselecties', 'id':resultaat.id});

   }}).send({'actie': 'saveBiederselectie', 'naam':naam});
}


function selectieTonen(biederselectie_id) {
   var jSonRequest = new Json.Remote("/ajaxserver",{onComplete: function(resultaat) {
      $('bieders').setHTML(resultaat.HTML);
      initSelecteerBieders();
   }}).send({'actie': 'haalBiederselectie', 'biederselectie_id':biederselectie_id});
}
function filtersTonen(biederfilter_id) {
   var jSonRequest = new Json.Remote("/ajaxserver",{onComplete: function(resultaat) {
      $('filterknoppen').innerHTML = resultaat.HTML;
      TB_init(); // smoothboxes opnieuw initialiseren
   }}).send({'actie': 'haalBiederfilter', 'biederfilter_id':biederfilter_id});
}
function filterBieders() {
   var jSonRequest = new Json.Remote("/ajaxserver",{onComplete: function(resultaat) {
      $('bieders').innerHTML = resultaat.HTML;
      parent.$('standaardselectie').selectedIndex = 0;
      initSelecteerBieders();
   }}).send({'actie': 'haalGefilterdeBieders'});
}
function filterSelect(type) {
   var filteropties = $$('ul.filter input'),
       filterlijst = '';
   filteropties.forEach(function(tag, index) {
      if(tag.checked) {
         filterlijst += ' '+tag.value+','
      }
   })

   var jSonRequest = new Json.Remote("/ajaxserver",{onComplete: function(resultaat) {
      parent.$('filterknoppen').innerHTML = resultaat.HTML;
      parent.$('standaardfilter').selectedIndex = 0;
      parent.TB_remove();
      parent.TB_init();
   }}).send({'actie': 'filterSelect', 'filterlijst':filterlijst, 'Type':type});
}
function WachtwoordWijzigen() {
   var jSonRequest = new Json.Remote("/ajaxserver",{onComplete: function(resultaat) {
      if(resultaat.gelukt) {
         alert(resultaat.resultaattekst);
         parent.document.location.reload();
      }else {
         alert(resultaat.errormelding);
      }
   }}).send({'actie': 'wijzigWachtwoord','oldpass': $('oldpass').value, 'wachtwoord': $('wachtwoord').value, 'wachtwoord2': $('wachtwoord2').value});
}
function BiedersKoppelen() {
   var veilingen = '';
   $$('.vlng').forEach(function(tag,index) {
      if(tag.checked) {
         var id = tag.id.split('_')[1];
         veilingen += id+',';
      }
   });
   // laatste komma er weer af halen
   //
   veilingen = veilingen.substring(0,veilingen.length-1);
   var jSonRequest = new Json.Remote("/ajaxserver",{onComplete: function(resultaat) {
      alert(resultaat.resultaattekst);
   }}).send({'actie': 'koppelBieders', 'veilingen': veilingen});
}
function annuleerBiedersKoppelen() {
   var jSonRequest = new Json.Remote("/ajaxserver",{onComplete: function(resultaat) {
      document.location.href= '/veilingen'; // terug naar het veilingoverzicht
   }}).send({'actie': 'annuleerBiedersKoppelen'});
}
function AfzetkanaalOpslaan() {
   AfzetkanaalToevoegen();
}
function AfzetkanaalToevoegen() {
   var formdata = Array();
  // var obj = $$('#afzetkanalen input, #afzetkanalen select, #afzetkanalen textarea');
    var obj = $$('.regioteller');

   obj.forEach(function(tag, index) {
      if(tag.type != 'checkbox' || tag.checked) {
         formdata.push({'name':tag.name, 'value':uescape(tag.value)});
      }
   });
   var jSonRequest = new Json.Remote("/ajaxserver",{onComplete: function(resultaat) {
      if(!resultaat.gelukt) {
         alert(resultaat.errormelding)
      }
      refreshAfzetkanalen('afzetkanalen');
      TB_remove();
   }}).send({'actie': 'AfzetKanaalToevoegen',  'formdata':formdata});
}
function refreshAfzetkanalen(container) {
   var jSonRequest = new Json.Remote("/ajaxserver",{onComplete: function(resultaat) {
      $(resultaat.container).innerHTML = resultaat.HTML;
      TB_init(); // Smoothboxes opnieuw initialiseren
   }}).send({'actie': 'haalBiederAfzetkanaalLanden', 'container':container});
}
function AfzetkanaalVerwijderen(id, confirmed) {
   var jSonRequest = new Json.Remote("/ajaxserver",{onComplete: function(resultaat) {
      if(resultaat.confirmtekst != '') {
         if(confirm(resultaat.confirmtekst)) {
            AfzetkanaalVerwijderen(resultaat.id, true);
         }
      }else {
         alert(resultaat.resultaattekst);
         TB_remove();
         refreshAfzetkanalen('afzetkanalen');
      }
   }}).send({'actie': 'verwijderAfzetkanaal', 'confirmed':confirmed, 'id':id});
}
function haalDataMetZoekwoord() {
   // Stel hidden fields in op de nieuwe data
   //
   $('fStatus').value    = "-1";
   $('fLand').value      = -1;
   $('fAanbieder').value = -1;
   $('fTrefwoord').value = $('trefwoord').value;
   zoekmethode = "trefwoord";

   // ga vervolgens naar pagina 1
   //
   naarPagina(1);
}
function ValidateEmail(strValue)
/* Deze functie valideert een e-mail adres.                                  */
/* strValue      => string die het te valideren e-mail adres bevat           */
/* ValidateEmail <= false: ongeldig e-mail adres, true: geldig e-mail adres. */
{
   var arrMatch=new RegExp("^[A-Za-z0-9_-]+([.][A-Za-z0-9_-]+){0,4}[@][A-Za-z0-9_-]+([.][A-Za-z0-9_-]+){1,3}$").exec(strValue)
   if(!arrMatch) return(false); else return(true)
}
function updateSluitingsDatum()
/* Deze functie update losse sluitingsdatum velden naar een hidden veld */
{
	var strValue = '';
	strValue = strValue.concat( strPad( document.getElementById('sluitings_datum_dag').value, 2), '-' );
	strValue = strValue.concat( strPad( document.getElementById('sluitings_datum_maand').value, 2), '-');
	strValue = strValue.concat( strPad( document.getElementById('sluitings_datum_jaar').value, 4), ' ');
	strValue = strValue.concat( strPad( document.getElementById('sluitings_datum_uur').value, 2), ':');
	strValue = strValue.concat( strPad( document.getElementById('sluitings_datum_min').value, 2) );

	document.getElementById('sluitings_datum').value = strValue;
}
function strPad(str, l)
/* Deze functie verzorgt string padding */
{
	while (str.length < l)
	{
		str = new String.concat('0', str);
	}
	return str;
}
function openOverig(el){
	if($('open').getStyle('display')=='block'){
		$('hiddenOverig').setStyle('display', 'block');
		$('open').setStyle('display', 'none');
		$('close').setStyle('display', 'block');
	}else{
		$('hiddenOverig').setStyle('display', 'none');
		$('open').setStyle('display', 'block');
		$('close').setStyle('display', 'none');
	}
}


/* user function to escape data */
function uescape(s) {
	s = filterEuro(s).replace(/\&/g, escape('&')).replace('"', '\'\'');
	s = s.replace('\+', escape('%2B'));
	return s;
}

/* rewrite utf8 euro char handling */
function filterEuro(str) {
	var euro = String.fromCharCode(8364); //8364 = utf8 euro sign
	str = str.replace(/\%u20AC/g, euro);
	return str;
}
/* number format in javascript */
function numberFormat(str) {
	var jSonequest = new Json.Remote("/ajaxserver",{onComplete: function(resultaat) {
			document.getElementById('bod').value = resultaat.resultaattext;
    }
	 }).send({'actie': 'numberFormat', 'number':str});
}

function toggleStuurSMS(id, state) {
   var jSonRequest = new Json.Remote("/ajaxserver",{onComplete: function(resultaat) {
   	 // foo
   }}).send({'actie': 'toggleStuurSMS', 'contact_id':id, 'state':state});
}

function toggleStuurEmail(id, state) {
   var jSonRequest = new Json.Remote("/ajaxserver",{onComplete: function(resultaat) {
   	 // foo
   }}).send({'actie': 'toggleStuurEmail', 'contact_id':id, 'state':state});
}
