/*
 * restaurateurs js
 * Copyright(c) 2006, M. Nugter.
 * 
 * This code is licensed under BSD license. Use it as you wish, 
 * but keep this copyright intact.
 */


var ds = { };

ds.initWebsite = function()
{
}
ds.menu = {
	activeMenu: "",
	offsetLeft: 0,
	offsetTop: -1
};

ds.menu.create = function(name)
{
	if(typeof(ds.menu.shim) == 'undefined')
	{
		ds.menu.shim = new Ext.Layer({
			dh: {
	    		id: 'mainmenu-shim',
				tag: 'iframe',
				cls: 'mainmenu-shim',
				href: '/website/gfx/empty.gif'
			},
			hideMode: 'display',
			shadow: false,
			zindex: 10000
		});
	}
	
	var el = Ext.get(name+'-link');
	var tid = 0, menu, doc = Ext.getDoc();
	
	var handleOver = function(e, t)
	{
		if(t != el.dom && t != menu.dom && !e.within(el) && !e.within(menu))
		{
			hideMenu();
		}	
	};
			
	var hideMenu = function()
	{
		if(menu)
		{
			menu.hide();
			el.removeClass('hover');
			doc.un('mouseover', handleOver);
			doc.un('mousedown', handleDown);
			
			if(!ds.menu.activeMenu.isVisible())
			{
				ds.menu.shim.hide();
			}
		}
	}
	
	var handleDown = function(e)
	{
		if(!e.within(menu) && !e.within(el))
		{
			hideMenu();
		}
	}
	
	var showMenu = function()
	{
		clearTimeout(tid);
		tid = 0;
		
		if (!menu)
		{
			menu = new Ext.Layer({shadow:false,hideMode: 'display', zindex: 10001}, name+'-menu');
		}
		menu.hideMenu = hideMenu;
		menu.el = el;
		if(ds.menu.activeMenu && menu != ds.menu.activeMenu)
		{
			ds.menu.activeMenu.hideMenu();
		}
		ds.menu.activeMenu = menu;
		
		if (!menu.isVisible())
		{
			menu.show();
			menu.alignTo(el, 'tl-bl?', [ds.menu.offsetLeft, ds.menu.offsetTop]);
			menu.sync();
			el.addClass('hover');
			doc.on('mouseover', handleOver, null, {buffer:1});
			doc.on('mousedown', handleDown);
			
			var size = menu.getSize();
			ds.menu.shim.alignTo(menu, 'tl-tl');
			ds.menu.shim.setSize(size.width, size.height);
			ds.menu.shim.show();
		}
	}
	
	el.on('mouseover', function(e)
	{
		if(!tid)
		{
			tid = showMenu.defer(1);
		}
	});
	
	el.on('mouseout', function(e)
	{
		if(tid && !e.within(el, true))
		{
			clearTimeout(tid);
			tid = 0;				
		}
	});
}

ds.openMainmenuitem = function(e)
{
	Ext.get('mainmenu').select('td').removeClass('active');
    var td = e.getTarget('td', 3);
    td.className = 'active';
}
ds.closeMainmenuitem = function(e)
{
    var td = e.getTarget('td', 3);
    td.className = '';
}
ds.processFormSnelzoeken = function(form)
{
	//Default ingevulde velden weghalen
	if(form['restaurantnaam'].value == 'restaurantnaam' || form['restaurantnaam'].value == form['qf_default_value_restaurantnaam'].value)
	{
		form['restaurantnaam'].value = '';
	}
	
	if(form['plaats'].value == 'plaats' || form['plaats'].value == form['qf_default_value_plaats'].value)
	{
		form['plaats'].value = '';
	}
	
	//Variabelen met eventuele defaults toevoegen aan url
	form.action += '/'+(form['zoeken_in'].value 		? form['zoeken_in'].value 		: 'alle');
	form.action += '/'+(form['restaurantnaam'].value 	? form['restaurantnaam'].value 	: 'restaurants');
	form.action += (form['plaats'].value 				? '/'+form['plaats'].value 		: '');
	form.action += '/';
	
	//En zorgen dat ze niet meer in de url komen
	form['restaurantnaam'].disabled = true;
	form['plaats'].disabled = true;
}

ds.processFormUitgebreidzoeken = function(form)
{
	//Default ingevulde velden weghalen
	if(form['plaats'].value == 'plaats')
	{
		form['plaats'].value = '';
	}
	
	//Variabelen met eventuele defaults toevoegen aan url
	form.action += (form['plaats'].value 				? '/'+form['plaats'].value 		: '');
	form.action += '/';
}

ds.formDefaultValue = function (el, value)
{
	if(el.value == value)
	{
		el.className = el.className.replace(/form_default_value/, '');
		el.value = '';
	}
	else if(el.value == '')
	{
		el.className = el.className + ' form_default_value';
		el.value = value;
	}
}
ds.switchVisibility = function(id, params)
{
	var display = (typeof(params) != 'undefined' && typeof(params['display']) != 'undefined') ? params['display'] : 'block';
	var el = Ext.get(id);
	
	if(!el.isVisible())
	{
		el.setDisplayed(true);
		return true;
	}
	else
	{
		el.setDisplayed(false);
		return false;
	}
}
ds.expandCollapse = function(triggerImg, id)
{
	var result = ds.switchVisibility(id);
	
	if(document.getElementById(id+'-content'))
	{
		if(result == true)
		{
			document.getElementById(id).innerHTML = document.getElementById(id+'-content').innerHTML;
			document.getElementById(id+'-content').innerHTML = '';
		}
		else
		{
			document.getElementById(id+'-content').innerHTML = document.getElementById(id).innerHTML;
			document.getElementById(id).innerHTML = '';
		}
	}
	if(result == true)
	{
		triggerImg.src = triggerImg.src.replace(/plus/, 'minus');
	}
	else
	{
		triggerImg.src = triggerImg.src.replace(/minus/, 'plus');
	}
}

ds.showHideFeedbackWindow = function()
{
	ds.switchVisibility('feedback_window');
	Ext.get('feedback_window').alignTo(Ext.get('feedback_button'), 'tr-br', [-5, 5]);
}

ds.fitFrametoContent = function(id, iframe)
{
	var iFrameElement = document.getElementById(id);
	iFrameElement.style.height = iframe.document.body.scrollHeight + 48 + 'px';
}
rs = {};

ds.menu.offsetTop = 0;

rs.navigateTo = function(url)
{
	try
	{
		window.location = url;
	}
	catch(e)	{	}
}

rs.confirm = function(msg, e)
{
	if(window.confirm(msg))
	{
		return true;
	}
	else
	{
		if(typeof(e) != 'undefined')
		{
			e.cancelBubble = true;
		}
		return false;
	}
}

rs.loader = new function()
{
	this.disableInteraction = function(e) {
		e.preventDefault();
	};
	
	this.show = function()
	{
		document.body.style.cursor = "wait";
		Ext.get(document.body).on('click', this.disableInteraction);
	};
	
		
	this.hide = function()
	{
		document.body.style.cursor = "auto";
		Ext.get(document.body).removeListener('click', this.disableInteraction);
	};
}


rs.updateRadioKeuze = function(checkbox, table_id)
{
	var prefix = table_id + '_';
	if(Ext.type(checkbox) == 'string')
	{
		var elem = checkbox;
		Ext.get(prefix+cadeaukeuze).dom.checked = true;
	}
	else
	{
		var elem = checkbox.id.replace(prefix, '');
	}
	Ext.get(table_id).select('tr').removeClass('selected');
	
	Ext.get('row_'+prefix+elem).addClass('selected');
}

rs.help = {
	panel: new Ext.Layer({
		cls: 'layer-window help-window',
		shadow:"frame",
		shadowOffset: 10,
		zindex: 11000
	}),
	//Om ervoor te zorgen dat selects en flashbanners er niet overheen gaan.
	shimPanel: new Ext.Layer({
		dh: {
    		id: 'help-shim',
			tag: 'iframe',
			cls: 'help-shim',
			href: '/restaurateurs/informatie/help/loading'
		},
		zindex: 10000
	})
};

rs.help.open = function(url, help_id)
{
	PEAR.HTML.QuickForm.renderer.restaurateurs.notifyNoPageUnload();
	
	rs.help.shimPanel.show();
	rs.help.shimPanel.center();
	
	Ext.Ajax.request({
		url: '/restaurateurs/informatie/help/?url='+url+'&help_id='+(typeof(help_id) != 'undefined' ? help_id : 0),
		success: function(response)
		{
			var result = Ext.decode(response.responseText);
			
			rs.help.panel.update(result.html);
			rs.help.panel.show();
			rs.help.panel.center();
			
			try
			{
				window.eval(result.js);
			}
			catch(e)
			{
				window.alert(e.name + ' on ' + e.number + ': ' + e.description + ' (' + e.toString());
			}
		}
	});
}
rs.help.sluiten = function()
{
	rs.help.shimPanel.hide();
	rs.help.panel.hide();
}

rs.help.openOnderwerp = function(node)
{
	Ext.Ajax.request({
		url: '/restaurateurs/informatie/help/help_onderdeel?help_id='+node.id,
		success: function(response)
		{
			Ext.get('help-content').update(response.responseText);
		}
	});
}
rs.restaurant = {};
rs.services = {};

rs.services.boekingen = {
	dagen: [
        'maandag',
        'dinsdag',
        'woensdag',
        'donderdag',
        'vrijdag',
        'zaterdag',
        'zondag'
	]
}

rs.services.boekingen.update = function(sIndex, dagdeel)
{
    if(Ext.get('koppel_dagen').dom.checked == true)
    {
        for(key in rs.services.boekingen.dagen)
        {
            var el = Ext.get(rs.services.boekingen.dagen[key]+'_'+dagdeel);
            if(el && el.dom)
            {
                el.dom.selectedIndex = sIndex;
            }
        }
    }
}

rs.presentatie = {};

rs.promotie = {};

rs.presentatie.fotos_videos = {};

rs.presentatie.fotos_videos.showFullImage = function(thumb, foto_id)
{
	var fullImage = Ext.get('foto_'+foto_id);
	
	fullImage.enableDisplayMode().show();
	fullImage.alignTo(thumb, 'tl-tl', [1,1]);
	fullImage.on('mouseout', rs.presentatie.fotos_videos.hideFullImage, fullImage);
}

rs.presentatie.fotos_videos.hideFullImage = function(e)
{
	this.enableDisplayMode().hide();
	this.removeListener('mouseout', rs.presentatie.fotos_videos.hideFullImage);
}
rs.restaurant.keuken = {
	busy: false
};

rs.restaurant.keuken.validateKeuken = function(keuken_select)
{
	if(keuken_select.value == '')
	{
		Ext.ComponentMgr.get(keuken_select.id+'_punten_slider').setValue(0);
	}
	else if(Ext.ComponentMgr.get(keuken_select.id+'_punten_slider').getValue() == 0)
	{
		Ext.ComponentMgr.get(keuken_select.id+'_punten_slider').setValue(1);
	}
}

rs.restaurant.keuken.validatePunten = function(slider, newValue)
{
	if(rs.restaurant.keuken.busy == true)
	{
		return;
	}
	rs.restaurant.keuken.busy = true;
	
	var activeKeuken = slider.id.replace(/_slider/, '');
	var maxPunten = 15;
	var aantalKeukens = 0;
	var totaal_punten = 0;
	var punten = {};
	
	var keukens = {
		keuken_1: Ext.get('keuken_1'),
		keuken_2: Ext.get('keuken_2'),
		keuken_3: Ext.get('keuken_3')
	};
	
	var keuken_punten = {
		keuken_1_punten: Ext.get('keuken_1_punten'),
		keuken_2_punten: Ext.get('keuken_2_punten'),
		keuken_3_punten: Ext.get('keuken_3_punten')
	};
	var keuken_punten_rest = [];
	
	if(keukens['keuken_1'].dom.value != '')
	{
		aantalKeukens++;
		totaal_punten += keuken_punten['keuken_1_punten'].dom.value;
		
		if(activeKeuken != 'keuken_1_punten')
		{
			keuken_punten_rest.push(keuken_punten['keuken_1_punten']);
		}
	}
	if(keukens['keuken_2'].dom.value != '')
	{
		aantalKeukens++;
		totaal_punten += keuken_punten['keuken_2_punten'].dom.value;
		
		if(activeKeuken != 'keuken_2_punten')
		{
			keuken_punten_rest.push(keuken_punten['keuken_2_punten']);
		}
	}
	if(keukens['keuken_3'].dom.value != '')
	{
		aantalKeukens++;
		totaal_punten += keuken_punten['keuken_3_punten'].dom.value;
		
		if(activeKeuken != 'keuken_3_punten')
		{
			keuken_punten_rest.push(keuken_punten['keuken_3_punten']);
		}
	}
	
	//De actieve slider is de enige slider
	if(aantalKeukens == 1 && slider.getValue() != 0)
	{
		Ext.get(activeKeuken).dom.value = maxPunten;
		slider.setValue(maxPunten);
		rs.restaurant.keuken.busy = false;
		return;
	}	
	//Er is slecht 1 slieder actief maar het is niet de actieve (tweede keuken wordt uitgezet)
	else if(aantalKeukens == 1 && typeof(keuken_punten_rest[0]) != 'undefined')
	{
		keuken_punten_rest[0].dom.value = maxPunten;
		Ext.ComponentMgr.get(keuken_punten_rest[0].id+'_slider').setValue(maxPunten);
		rs.restaurant.keuken.busy = false;
		return;
	}
	//maximaal aantal punten eventueel corrigeren, er moeten genoeg punten voor de andere keukens overblijven.
	else if(newValue+(aantalKeukens-1) > maxPunten)
	{
		newValue = maxPunten - aantalKeukens + 1;
		
		Ext.get(activeKeuken).dom.value = newValue;
		slider.setValue(newValue);
	}
	var restPunten = maxPunten - newValue;
	
	//Als er slechts twee actieve keukens zijn, de restpunten toewijzen aan de andere keuken
	if(aantalKeukens == 2 && slider.getValue() != 0)
	{
		keuken_punten_rest[0].dom.value = restPunten;
		Ext.ComponentMgr.get(keuken_punten_rest[0].id+'_slider').setValue(restPunten);
		
		rs.restaurant.keuken.busy = false;
		return;
	}
	
	//Als er slechts twee punten te verdelen zijn.
	if(restPunten == 2)
	{
		keuken_punten_rest[0].dom.value = 1;
		Ext.ComponentMgr.get(keuken_punten_rest[0].id+'_slider').setValue(1);
		keuken_punten_rest[1].dom.value = 1;
		Ext.ComponentMgr.get(keuken_punten_rest[1].id+'_slider').setValue(1);
		
		rs.restaurant.keuken.busy = false;
		return;
	}
	
	var high = (keuken_punten_rest[0].dom.value > keuken_punten_rest[1].dom.value)
		? 0 : 1;
	
	var precentageFirst		= keuken_punten_rest[high].dom.value / restPunten;
	var precentageSecond	= 1 - precentageFirst;
	
	var puntenFirst			= Math.round(precentageFirst * restPunten);
	var puntenSecond		= restPunten - puntenFirst;
	
	if(puntenFirst < 1)
	{
		puntenSecond = (puntenSecond + puntenFirst) - 1;
		puntenFirst = 1;
	}
	else if(puntenSecond < 1)
	{
		puntenFirst = (puntenFirst + puntenSecond) - 1;
		puntenSecond = 1;
	}
	
	
	if(puntenSecond == 0)
	{
		puntenSecond = 1;
		puntenFirst = puntenFirst - 1;
	}
	if(puntenFirst == 0)
	{
		puntenFirst = 1;
		puntenSecond = puntenSecond - 1;
	}
	
	if(high == 0)
	{
		keuken_punten_rest[0].dom.value = puntenFirst;
		Ext.ComponentMgr.get(keuken_punten_rest[0].id+'_slider').setValue(puntenFirst);
		keuken_punten_rest[1].dom.value = puntenSecond;
		Ext.ComponentMgr.get(keuken_punten_rest[1].id+'_slider').setValue(puntenSecond);
	}
	else
	{
		keuken_punten_rest[0].dom.value = puntenSecond;
		Ext.ComponentMgr.get(keuken_punten_rest[0].id+'_slider').setValue(puntenSecond);
		keuken_punten_rest[1].dom.value = puntenFirst;
		Ext.ComponentMgr.get(keuken_punten_rest[1].id+'_slider').setValue(puntenFirst);
	}
	
	rs.restaurant.keuken.busy = false;
	return;
}
rs.promotie.upgrade = {};

rs.promotie.upgrade.updateAbonnementKeuze = function(checkbox)
{
	if(Ext.type(checkbox) == 'string')
	{
		var abonnement = checkbox;
		
		Ext.get('checkbox_'+abonnement).dom.checked = true;
	}
	else
	{
		var abonnement = checkbox.id.replace(/checkbox_/, '');
	}
	Ext.get('abonnementen').select('tr').removeClass('selected');
	
	Ext.get('row_abonnement_'+abonnement).addClass('selected');
}

rs.promotie.upgrade.updateCadeauKeuze = function(checkbox)
{
	if(Ext.type(checkbox) == 'string')
	{
		var cadeaukeuze = checkbox;
		Ext.get(cadeaukeuze).dom.checked = true;
	}
	else
	{
		var cadeaukeuze = checkbox.id.replace(/cadeaukeuze_/, '');
	}
	Ext.get('cadeaukeuze').select('tr').removeClass('selected');
	
	Ext.get('row_cadeaukeuze_'+cadeaukeuze).addClass('selected');
}
rs.restaurant.openingstijden = {
	dagen: [
		'maandag',
		'dinsdag',
		'woensdag',
		'donderdag',
		'vrijdag',
		'zaterdag',
		'zondag'
	]
};

rs.restaurant.openingstijden.update = function(selectEl, eerste_dag)
{
	if(Ext.get('openingstijden_koppel_dagen').dom.checked == true)
	{
		var eetmoment	= selectEl.id.substring(0, selectEl.id.indexOf('_'));
		var vanaftot	= selectEl.id.substring(selectEl.id.indexOf('_', selectEl.id.indexOf(eerste_dag))+1);
		
		for(key in rs.restaurant.openingstijden.dagen)
		{
			var el = Ext.get(eetmoment+'_'+rs.restaurant.openingstijden.dagen[key]+'_'+vanaftot);
			if(el && el.dom)
			{
				el.dom.selectedIndex = selectEl.selectedIndex;
			}
		}
	}
}
rs.restaurant.plattegrond = {};

rs.restaurant.plattegrond.updateForm = function(marker)
{
	Ext.get('restaurant_latitude').dom.value = marker.getLatLng().lat();
	Ext.get('restaurant_longitude').dom.value = marker.getLatLng().lng();
}
rs.promotie.lastminute = {};

rs.promotie.lastminute.showhideVoorwaarden = function(id)
{
	if(document.getElementById(id+'_1').style.display == 'none')
	{
		document.getElementById(id+'_1').style.display = 'inline';
		document.getElementById(id+'_2').style.display = 'inline';
	}
	else
	{
		document.getElementById(id+'_1').style.display = 'none';
		document.getElementById(id+'_2').style.display = 'none';
	}
}
var base_path = '/restaurateurs/promotie/bannerveiling';
rs.promotie.bannerveiling = {};

rs.promotie.bannerveiling.sluiten = function()
{
	for(key in rs.promotie.bannerveiling.Bannergroep.updateManagers)
	{
		try
		{
			rs.promotie.bannerveiling.Bannergroep.updateManagers[key].stopAutoRefresh();
		}
		catch(e) {}
	}
	
	Ext.get('bannerveiling-klok-tijd').update('Veiling gesloten');
	rs.promotie.bannerveiling.Klok.updateManager.stopAutoRefresh();
	
	Ext.get('maximum_biedingen_toevoegen').update('U kunt geen biedingen meer toevoegen voor deze veiling.');
	window.alert('De veiling is gesloten.');
};

rs.promotie.bannerveiling.updateUwBiedingen = function(html)
{
	var htmlUpdate = [];
	
	for(key in rs.promotie.bannerveiling.Bannergroep.active.maxbod_biedingen)
	{
		if(rs.promotie.bannerveiling.Bannergroep.active.maxbod_biedingen[key] == true)
		{
			htmlUpdate[key] = Ext.get('maxbod_biedingen_'+key).dom.innerHTML;
		}
	}
	Ext.get('maximum_biedingen_actief').update(html);
	var maxbod_biedingen;
	for(key in htmlUpdate)
	{
		maxbod_biedingen = Ext.get('maxbod_biedingen_'+key);
		if(maxbod_biedingen)
		{
			try
			{
				maxbod_biedingen.enableDisplayMode();
				maxbod_biedingen.show();
				maxbod_biedingen.update(htmlUpdate[key]);
				Ext.get('button_uw_biedingen_'+key).dom.src = '/website/gfx/icons/19/minus.gif';
			}
			catch(e) {}
		}
	}
};
rs.promotie.bannerveiling.Bannergroep = new function()
{
	this.updateManagers	= [];
	this.refreshrate	= 10;
	this.active			= {
		maxbod_biedingen: {},
		biedingen: {}
	};
	this.layer = new Ext.Layer({cls:"layer-bieding", shadow:"frame", shadowOffset: 10});
	
	this.init = function()
	{
		this.updateManagers['overzicht'] = new Ext.UpdateManager('overzicht-proxy');
		this.updateManagers['overzicht'].setRenderer(new rs.promotie.bannerveiling.BedragenRenderer());
		this.updateManagers['overzicht'].startAutoRefresh(this.refreshrate, base_path+'/refresh_overzicht.php', null, null, true);
	}
	
	this.switchBiedingen = function(bannergroep_id)
	{
		var bannergroep 	 = Ext.get('biedingen_'+bannergroep_id);
		var bannergroep_row	 = Ext.get('row_'+bannergroep_id);
		var button_biedingen = Ext.get('button_biedingen_'+bannergroep_id);
		
		bannergroep.enableDisplayMode();
		
		if(bannergroep.isVisible())
		{
			button_biedingen.dom.src = '/website/gfx/icons/19/plus.gif';
			bannergroep.hide();
			bannergroep_row.removeClass('open');
			this.updateManagers['bannergroep_'+bannergroep_id].stopAutoRefresh();
		}
		else
		{
			bannergroep_row.addClass('open');
			bannergroep.show();
			button_biedingen.dom.src = '/website/gfx/icons/19/minus.gif';
			if(!this.updateManagers['bannergroep_'+bannergroep_id])
			{
				this.updateManagers['bannergroep_'+bannergroep_id] = new Ext.UpdateManager(bannergroep);
				this.updateManagers['bannergroep_'+bannergroep_id].showLoadIndicator = false;
			}
			this.updateManagers['bannergroep_'+bannergroep_id].startAutoRefresh(this.refreshrate, base_path+'/biedingen.php?bannergroep_id='+bannergroep_id, null, null, true);
		}
	}
	
	this.showBieden = function(maxbod_id, bannergroep_id)
	{
		if(!this.layer.isVisible())
		{
			this.layer.show();
			this.layer.center(Ext.get('bannerveiling-container'));
		}
		this.layer.update('');
		this.layer.mask('Bezig met laden...', 'x-mask-loading');
		
		rs.loader.show();
		Ext.Ajax.request({
			url: base_path+'/bieden.php?maxbod_id='+maxbod_id+'&bannergroep_id='+bannergroep_id,
			success: function(response)
			{
				rs.loader.hide();
				var result = eval('('+response.responseText+')');
				this.layer.update(result.formulier);
				this.layer.center(Ext.get('bannerveiling-container'));
				this.layer.unmask(true);
			},
			failure: function(response)
			{
				rs.loader.hide();
			},
			scope: this
		});
	}
	
	this.hideBieden = function()
	{
		this.layer.hide();
		return false;
	}
	
	this.bieden = function()
	{
		this.layer.mask('Bezig met verwerken...', 'x-mask-loading');
		
		rs.loader.show();
		new Ext.form.BasicForm('biedingen', {}).submit({
			success: function(form, action)
			{
				rs.loader.hide();
				var result = action.result;
				rs.promotie.bannerveiling.updateUwBiedingen(result.biedingen_actief);
				
				if(result.opslaan == true)
				{
					this.layer.update(result.formulier);
				}
				else
				{
					if(result.melding)
					{
						window.alert(result.melding);
					}
					if(result.error == 'maximum_aantal_biedingen')
					{
						this.layer.hide();
					}
					else
					{
						this.layer.update(result.formulier);
					}
				}
				this.layer.unmask(true);
				rs.loader.hide();
			},
			failure: function(form, action)
			{
				this.layer.unmask(true);
				rs.loader.hide();
			},
			scope: this
		});
		return false;
	}
	this.maxbodVerwijderen = function(maxbod_id)
	{
		var test = window.confirm('Weet u zeker dat u dit maximumbod wilt verwijderen?');
		if(test)
		{
			rs.loader.show();
			Ext.Ajax.request({
				url: base_path+'/maximumbod_verwijderen.php?maxbod_id='+maxbod_id,
				success: function(response)
				{
				rs.loader.hide();
					var result = Ext.decode(response.responseText);
					
					if(result.maximum_biedingen_actief)
					{
						rs.promotie.bannerveiling.updateUwBiedingen(result.maximum_biedingen_actief);
					}
					window.alert(result.melding);
				},
				failure: function(response)
				{
					rs.loader.hide();
				},
				scope: this
			});
			return false;
		}
	}
	this.switchMaxbodBiedingen = function(maxbod_id)
	{
		var maxbod_biedingen = Ext.get('maxbod_biedingen_'+maxbod_id);
		var button_biedingen = Ext.get('button_uw_biedingen_'+maxbod_id);
		
		maxbod_biedingen.enableDisplayMode();
		
		if(maxbod_biedingen.isVisible())
		{
			button_biedingen.dom.src = '/website/gfx/icons/19/plus.gif';
			maxbod_biedingen.hide();
			this.updateManagers['maxbod_biedingen_'+maxbod_id].stopAutoRefresh();
			delete this.updateManagers['maxbod_biedingen_'+maxbod_id];
			this.active.maxbod_biedingen[maxbod_id] = false;
		}
		else
		{
			this.active.maxbod_biedingen[maxbod_id] = true;
			maxbod_biedingen.show();
			button_biedingen.dom.src = '/website/gfx/icons/19/minus.gif';
			if(!this.updateManagers['uw_bannergroep_'+maxbod_id])
			{
				this.updateManagers['maxbod_biedingen_'+maxbod_id] = new Ext.UpdateManager(maxbod_biedingen);
				this.updateManagers['maxbod_biedingen_'+maxbod_id].showLoadIndicator = false;
			}
			this.updateManagers['maxbod_biedingen_'+maxbod_id].startAutoRefresh(this.refreshrate, base_path+'/laatste_biedingen.php?maxbod_id='+maxbod_id, null, null, true);
			this.updateManagers['maxbod_biedingen_'+maxbod_id].setDefaultUrl(base_path+'/laatste_biedingen.php?maxbod_id='+maxbod_id);
		}
	}
};
rs.promotie.bannerveiling.BedragenRenderer = function(){};
rs.promotie.bannerveiling.BedragenRenderer.prototype = {
	render : function(el, response, updateManager, callback)
	{
		var el;
		
		try
		{
			var update = eval('(' + response.responseText + ')');
			if(update.toevoegen)
			{
				if(update.toevoegen.vanaf)
				{
					for(key in update.toevoegen.vanaf)
					{
						el = Ext.get(key)
						if(el)
						{
							el.update(update.toevoegen.vanaf[key]);
						}
					}
				}
				if(update.toevoegen.rows)
				{
					for(key in update.toevoegen.rows)
					{
						el = Ext.get(key);
						Ext.get(key).removeClass(['positie','positie-eigen-biedingen','positie-geen-biedingen']);
						Ext.get(key).addClass(update.toevoegen.rows[key]);
					}
				}
			}
			if(update.uw_biedingen)
			{
				rs.promotie.bannerveiling.updateUwBiedingen(update.uw_biedingen);
			}
		}
		catch(e) {}
	}
};
rs.promotie.bannerveiling.Klok = new function()
{
	this.sluitTimestamp;
	this.secondenTeGaan;
	this.interval 		= 1;
	this.refreshrate 	= 5;
	this.elements 		= [];
	
	
	this.labels			= {
		d: {s: 'dag',		n: 'dagen'},
		u: {s: 'uur',		n: 'uur'},
		m: {s: 'minuut',	n: 'minuten'},
		s: {s: 'seconde',	n: 'seconden'}
	};
	
	this.init = function()
	{
		this.elements['d'] = document.getElementById('bannerveiling-klok-dagen');
		this.elements['u'] = document.getElementById('bannerveiling-klok-uren');
		this.elements['m'] = document.getElementById('bannerveiling-klok-minuten');
		this.elements['s'] = document.getElementById('bannerveiling-klok-seconden');
		
		this.elements['d-label'] = document.getElementById('bannerveiling-klok-dagen-label');
		this.elements['u-label'] = document.getElementById('bannerveiling-klok-uren-label');
		this.elements['m-label'] = document.getElementById('bannerveiling-klok-minuten-label');
		this.elements['s-label'] = document.getElementById('bannerveiling-klok-seconden-label');
		
		this.updateManager = new Ext.UpdateManager('overzicht-proxy');
		this.updateManager.setRenderer(new rs.promotie.bannerveiling.Klok.UpdateManager());
		this.updateManager.startAutoRefresh(this.refreshrate, base_path+'/refresh_sluitdatum.php', null, null, true);
	}
	
	this.updateSluitingsdatum = function()
	{
		secondsLeft = this.secondenTeGaan;
		if(secondsLeft < 1)
		{
			rs.promotie.bannerveiling.sluiten();
		}
		var d = Math.floor(secondsLeft / (24 * 60 * 60));
		secondsLeft = secondsLeft - (d * 24 * 60 * 60);
		
		var u = Math.floor(secondsLeft / (60 * 60));
		secondsLeft = secondsLeft - (u * 60 * 60);
		
		var m = Math.floor(secondsLeft / (60));
		var s = Math.floor(secondsLeft - (m * 60));
		
		this.elements['d'].innerHTML = d;
		this.elements['u'].innerHTML = u;
		this.elements['m'].innerHTML = m;
		this.elements['s'].innerHTML = s;
		
		this.elements['d-label'].innerHTML = (d == 1 ? this.labels.d.s : this.labels.d.n);
		this.elements['u-label'].innerHTML = (u == 1 ? this.labels.u.s : this.labels.u.n);
		this.elements['m-label'].innerHTML = (m == 1 ? this.labels.m.s : this.labels.m.n);
		this.elements['s-label'].innerHTML = (s == 1 ? this.labels.s.s : this.labels.s.n);
		
		this.secondenTeGaan--;
	}
};

rs.promotie.bannerveiling.Klok.UpdateManager = function(){};
rs.promotie.bannerveiling.Klok.UpdateManager.prototype = {
	render : function(el, response, updateManager, callback)
	{
		try
		{
			var result = eval('('+response.responseText+')');
			rs.promotie.bannerveiling.Klok.secondenTeGaan = result.secondenTeGaan;
			
			if(result.isGesloten == 'gesloten')
			{
				rs.promotie.bannerveiling.sluiten();
			}
			else
			{
				document.getElementById('bannerveiling-sluitdatum').innerHTML = result.sluitDatum;
				rs.promotie.bannerveiling.Klok.updateSluitingsdatum();
			}
		}
		catch(e) {}
	}
};
function syncBedragenInput(element)
{
	if(element.value > Ext.get('form_bieden_maximum_bod').dom.value)
	{
		Ext.get('form_bieden_maximum_bod').dom.value = element.value;
	}
}
rs.promotie.premium = {};

rs.promotie.premium.switchStatus = function(el)
{
	var deactiveer = 1 - el.value;
	
	Ext.get('premium_status_'+deactiveer).replaceClass('premium_status_'+deactiveer+'_actief', 'premium_status_'+deactiveer);
	Ext.get('premium_status_'+el.value).replaceClass('premium_status_'+el.value, 'premium_status_'+el.value+'_actief');
}

rs.promotie.premium.statistieken = {
	panel: new Ext.Layer({
		cls: 'layer-window premium-window',
		shadow:"frame",
		shadowOffset: 10,
		zindex: 11010
	}),
	//Om ervoor te zorgen dat selects en flashbanners er niet overheen gaan.
	shimPanel: new Ext.Layer({
		dh: {
    		id: 'premium-shim',
			tag: 'iframe',
			cls: 'help-shim premium-shim',
			href: '/restaurateurs/informatie/help/loading'
		},
		zindex: 10010
	})
};

rs.promotie.premium.statistieken.open = function(channel)
{
	PEAR.HTML.QuickForm.renderer.restaurateurs.notifyNoPageUnload();
	
	rs.promotie.premium.statistieken.shimPanel.show();
	rs.promotie.premium.statistieken.shimPanel.center();
	
	Ext.Ajax.request({
		url: '/restaurateurs/promotie/premium/statistieken?channel='+channel,
		success: function(response)
		{
			var result = Ext.decode(response.responseText);
			
			rs.promotie.premium.statistieken.panel.update(result.html);
			rs.promotie.premium.statistieken.panel.show();
			rs.promotie.premium.statistieken.panel.center();
			
			try
			{
				window.eval(result.js);
			}
			catch(e)
			{
				window.alert(e.name + ' on ' + e.number + ': ' + e.description + ' (' + e.toString());
			}
		}
	});
}

rs.promotie.premium.statistieken.sluiten = function()
{
	rs.promotie.premium.statistieken.shimPanel.hide();
	rs.promotie.premium.statistieken.panel.hide();
}

rs.promotie.premium.statistieken.load = function(channel, bereik)
{
	PEAR.HTML.QuickForm.renderer.restaurateurs.notifyNoPageUnload();
	
	Ext.select('#premium-statistieken-tabs td.tab-left-active').replaceClass('tab-left-active', 'tab-left');
	Ext.select('#premium-statistieken-tabs td.tab-center-active').replaceClass('tab-center-active', 'tab-center');
	Ext.select('#premium-statistieken-tabs td.tab-right-active').replaceClass('tab-right-active', 'tab-right');
	
	Ext.get('premium_statistieken_button_left_'+bereik).replaceClass('tab-left', 'tab-left-active');
	Ext.get('premium_statistieken_button_center_'+bereik).replaceClass('tab-center', 'tab-center-active');
	Ext.get('premium_statistieken_button_right_'+bereik).replaceClass('tab-right', 'tab-right-active');
	
	Ext.Ajax.request({
		url: '/restaurateurs/promotie/premium/statistieken?channel='+channel+'&bereik='+bereik,
		success: function(response)
		{
			Ext.get('premium-statistieken-content').update(response.responseText);
		}
	});
}
rs.promotie.premium.updateBedragPerDag = function()
{
	var bedrag_per_dag = 0.00;
	Ext.select('#premium-channel-instellingen select').each(function(el) {
		bedrag_per_dag = Number(bedrag_per_dag) + Number(el.dom.value);
	});
	Ext.get('premium_uitgave_per_dag').update(bedrag_per_dag.toPrecision((bedrag_per_dag >= 10 ? 4 : 3)).replace(/\./,','));
	Ext.get('premium_dagen_te_gaan').update(Math.floor(Number(Ext.get('premium_totaal_tegoed').dom.innerHTML.replace(/\./, "").replace(/,/, ".")) / bedrag_per_dag));
}

rs.presentatie.menukaarten = {};

rs.presentatie.menukaarten.updateBronKeuze = function(checkbox)
{
	if(Ext.type(checkbox) == 'string')
	{
		var menukaart_bron = checkbox;
		
		Ext.get('checkbox_'+menukaart_bron).dom.checked = true;
	}
	else
	{
		var menukaart_bron = checkbox.id.replace(/checkbox_/, '');
	}
	Ext.select('.menukaarten tr').removeClass('selected');
	
	Ext.get('row_menukaart_bron_'+menukaart_bron).addClass('selected');
}
rs.promotie.uitgelicht = {};

rs.promotie.uitgelicht.loadPage = function(page)
{
	rs.loader.show();
	Ext.Ajax.request({
		url: '/restaurateurs/promotie/uitgelicht/agenda/?ajax=true&p='+page,
		success: function(response)
		{
			rs.loader.hide();
			var result = Ext.decode(response.responseText);
			
			Ext.get('uitgelicht_planning').update(result.html);
		},
		failure: function(response)
		{
			rs.loader.hide();
		}
	});
}

rs.promotie.uitgelicht.detailscherm = {
	panel: new Ext.Layer({
		cls: 'layer-window uitgelicht-window',
		shadow:"frame",
		shadowOffset: 10,
		zindex: 11010
	}),
	//Om ervoor te zorgen dat selects en flashbanners er niet overheen gaan.
	shimPanel: new Ext.Layer({
		dh: {
    		id: 'uitgelicht-shim',
			tag: 'iframe',
			cls: 'uitgelicht-window',
			href: '/restaurateurs/informatie/help/loading'
		},
		zindex: 10010
	})
};
rs.promotie.uitgelicht.detailscherm.open = function(pagina_id, datum_vanaf)
{
	rs.promotie.uitgelicht.detailscherm.shimPanel.show();
	rs.promotie.uitgelicht.detailscherm.shimPanel.center();
	
	Ext.Ajax.request({
		url: '/restaurateurs/promotie/uitgelicht/details/?pagina_id='+pagina_id+'&datum_vanaf='+datum_vanaf,
		success: function(response)
		{
			var result = Ext.decode(response.responseText);
			
			rs.promotie.uitgelicht.detailscherm.panel.update(result.html);
			rs.promotie.uitgelicht.detailscherm.panel.show();
			rs.promotie.uitgelicht.detailscherm.panel.center();
		}
	});
}
rs.promotie.uitgelicht.detailscherm.sluiten = function()
{
	rs.promotie.uitgelicht.detailscherm.shimPanel.hide();
	rs.promotie.uitgelicht.detailscherm.panel.hide();
}

rs.promotie.uitgelicht.updateWekenSelect = function(pagina_select)
{
	var datum_vanaf = Ext.get('uitgelicht_datum_vanaf');
	
	datum_vanaf.dom.options.length = 0;
	
	Ext.Ajax.request({
		url: '/restaurateurs/promotie/uitgelicht/inplannen_get_weken/?pagina_id='+pagina_select.value,
		success: function(response)
		{
			var result = Ext.decode(response.responseText);
			var i = 0;
			for(key in result)
			{
				datum_vanaf.dom.options[i++] = new Option(result[key], key);
			}
		}
	});
	
}
rs.presentatie.activiteiten = {};

rs.presentatie.activiteiten.updateIntervalKeuze = function(radio)
{
	if(radio.value != 'eenmalig')
	{
		Ext.get('acitiviteit_interval').setDisplayed(true);
		
		Ext.get('acitiviteit_wekelijks').setDisplayed(true);
		
		if(radio.value == 'maandelijks')
		{
			Ext.get('acitiviteit_maandelijks').setDisplayed(true);
			Ext.get('acitiviteit_td_maandelijks').setWidth(175);
			Ext.get('activiteit_interval_label_maandelijks').setDisplayed(true);
			Ext.get('activiteit_interval_label_wekelijks').setDisplayed(false);
		}
		else
		{
			Ext.get('acitiviteit_maandelijks').setDisplayed(false);
			Ext.get('acitiviteit_td_maandelijks').setWidth(1);
			Ext.get('activiteit_interval_label_maandelijks').setDisplayed(false);
			Ext.get('activiteit_interval_label_wekelijks').setDisplayed(true);
		}
	}
	else
	{
		Ext.get('acitiviteit_interval').setDisplayed(false);
	}
}
rs.dpublic = {};

rs.dpublic.switchCategorieToelichting = function(el, id)
{
	if(el.checked == true)
	{
		document.getElementById(id+'_toelichting_row').style.display = 'inline';
	}
	else
	{
		document.getElementById(id+'_toelichting_row').style.display = 'none';
	}
}
rs.dpublic.waarschuwVoorUitsluiten = function(el, categorie)
{
	if(document.getElementById(categorie+'_verzoek').checked == true)
	{
		window.alert('U heeft nog een verzoek tot opname voor de categorie `'+categorie+'` uitstaan, u moet deze eerst uit zetten voordat u de categorie kunt uitschakelen.');
		return false;
	}
	else
	{
		if(el.checked == true)
		{
			return window.confirm('Weet u zeker dat u de categorie `'+categorie+'` wilt uitschakelen? U wordt dan niet meer gevonden in deze categorie.');
		}
	}
}
rs.promotie.button = {
	template: new Ext.Template(
		'<a href="http://www.dinnersite.{tld}/restaurant/{RN}/button_in/" target="_blank" >',
		'<img border="0" src="http://www.dinnersite.{tld}/restaurant/{RN}/button/?fn={buttonImg}.png" />',
		'</a>'
	)
};	

rs.promotie.button.generateHTML = function(buttonImg, RN, tld)
{
	Ext.get(buttonImg).dom.checked = true;
	
	Ext.get('promobutton_link_code').dom.value = rs.promotie.button.template.applyTemplate({RN:RN, buttonImg:buttonImg, tld:tld});
};
rs.presentatie.persberichten = {};

rs.presentatie.persberichten.updateBronKeuze = function(checkbox)
{
	if(Ext.type(checkbox) == 'string')
	{
		var persbericht_bron = checkbox;
		
		Ext.get('checkbox_'+persbericht_bron).dom.checked = true;
	}
	else
	{
		var persbericht_bron = checkbox.id.replace(/checkbox_/, '');
	}
	Ext.select('.persberichten tr').removeClass('selected');
	
	Ext.get('row_persbericht_bron_'+persbericht_bron).addClass('selected');
}
