
function getal(obj) {
	var v = obj.value;
	v = v.replace(/[^0-9]+/, "");
	if (v == '') { v = "0";}
	obj.value = v;
}

function bedrag(obj) {
	var c = obj;
	var v = obj.value;
	
	v = v.replace(/[^0-9\.\,\-]+/, "");
	if (v == '') { v = "0";}

	e = v.split('.');
	if (e.length > 2) {
		v = '';
		for (a=0;a<e.length;a++) {
			if (a+1 == e.length) {
				v += '.';
			}
			v += e[a];
		}
	}
	e = v.split(',');
	if (e.length > 2) {
		v = '';
		for (a=0;a<e.length;a++) {
			if (a+1 == e.length) {
				v += ',';
			}
			v += e[a];
		}
	}
	v = v.replace(',','.');
	e = v.split('.');
	if (e.length > 2) {
		v = '';
		for (a=0;a<e.length;a++) {
			if (a+1 == e.length) {
				v += '.';
			}
			v += e[a];
		}
	}
	v = v.replace('.',',');
	c.value = v;
}

var iFrameFormRequest = new Class({
    
    Implements: Options,
    
    options: {
        onRequest: $empty,
        onComplete: function(data){},
        onFailure: $empty
    },
    
    initialize: function(formElmt,options){
        this.formElmt = formElmt;
        this.setOptions(options);
        this.frameId ='f' + Math.floor(Math.random() * 99999);
        this.formElmt.set('target',this.frameId);
        this.loading = false;
        this.formElmt.addEvent('submit',function(){
            this.loading = true;
            this.options.onRequest();
        }.bind(this));    

        this.iframe = new IFrame({
            name: this.frameId,
            styles: {
                display: 'none'        
            },
            src: 'about:blank',
            events: {
                load: function(self){
                    if (self.loading) {                
                        var doc = document.getElementById(self.frameId).contentWindow.document;
                        if (doc) {
                            if (doc.location.href == 'about:blank') {
                                self.options.onFailure();
                            }
                            if ($type(self.options.onComplete) == 'function') {
                                self.options.onComplete(doc.body.innerHTML);
                            }
                        } else {
                            self.options.onFailure();
                        }
                        self.loading = false;
                    }
                }.pass(this)
            }
        }).inject($(document.body),'top');
    },

    toElement: function(){
        return this.iframe;
    }
    
});
Element.implement('iFrameFormRequest',function(options){
    this.store('iFrameFormRequest',new iFrameFormRequest(this,options));
    return this;
});

// de window.open schermen!
var schermen = new Class({
	Implements: [Events],
	
	initialize: function(){
	},
	
	FB_mooBox_nobutton: function(ajaxurl,ajaxtitle){
		var fb2 = new Facebox({
			title: ajaxtitle,
			ajaxDelay: 400,
			overlay: {
				display: true,
				color: '#000',
				opacity: .3
			},
			ajaxErrorMessage: 'Er is een onbekende fout opgetreden.',
			html: '<iframe src="' + ajaxurl + '" id="frame2" width="100%" height="200" frameborder="0" border="0"></iframe>',
			controls: [
				["Sluit", "close", function() { this.hide();this.setContent('');this.html = ''; }, false]
			],
			draggable: true
		});
		fb2.show();
	},
	
	FB_MooBox: function(ajaxurl,ajaxtitle,knopnaam,widthy,heighty){
		
		if(knopnaam !='') {
			var controlobject = [[knopnaam, "load", function() {
					fb2.setTitle("Bezig met opslaan");
					var iframe = $('frame2');
					if(iframe) {
						submitForm(iframe,'form');					
						fb2.removeControl("load");
						fb2.setTitle(ajaxtitle);
					} else {
						fb2.setTitle("Foutmelding");
						fb2.setContent("Het opgevraagde formulier is niet gevonden.");
						fb2.removeControl("load");
					}
				}, true],
				["Sluit", "close", function() { 
					this.hide();
					this.setContent('');
					this.html = '';
					if(!fb2.getControl('load')) {
						window.location.reload(true);
					} 
				}, false]];
		} else {
			var controlobject = [["Sluit", "close", function() { 
					this.hide();
					this.setContent('');
					this.html = '';
					if(!fb2.getControl('load')) {
						window.location.reload(true);
					} 
				}, false]];
		}
		var fb2 = new Facebox({
			title: ajaxtitle,
			ajaxDelay: 400,
			overlay: {
				display: true,
				color: '#000',
				opacity: .3,
				width: widthy,
				height: heighty
			},
			width: widthy,
			height: heighty,
			ajaxErrorMessage: 'Er is een onbekende fout opgetreden.',
			html: '<iframe src="' + ajaxurl + '" id="frame2" width="100%" height="' + heighty + '" frameborder="0" border="0"></iframe>',
			controls:
				controlobject
			,
			draggable: true
		});
		fb2.show();
	},
	
	FB_MooBox_noreload: function(ajaxurl,ajaxtitle,knopnaam,widthy,heighty){
		var controlobject = [["Sluit", "close", function() { 
			this.hide();
			this.setContent('');
			this.html = '';
		}, false]];
		var fb2 = new Facebox({
			title: ajaxtitle,
			ajaxDelay: 400,
			overlay: {
				display: true,
				color: '#000',
				opacity: .3,
				width: widthy,
				height: heighty
			},
			width: widthy,
			height: heighty,
			ajaxErrorMessage: 'Er is een onbekende fout opgetreden.',
			html: '<iframe src="' + ajaxurl + '" id="frame2" width="100%" height="' + heighty + '" frameborder="0" border="0"></iframe>',
			controls:
				controlobject
			,
			draggable: true
		});
		fb2.show();
	},
	
	FB_mooBoxOverschrijding: function(ajaxurl,ajaxtitle,redirect) {
		var fb2 = new Facebox({
			title: ajaxtitle,
			ajaxDelay: 400,
			width: 950,
			height:550,
			overlay: {
				display: true,
				color: '#000',
				opacity: .3
			},
			ajaxErrorMessage: 'Er is een onbekende fout opgetreden.',
			html: '<iframe src="' + ajaxurl + '" id="frame2" width="100%" height="400" frameborder="0" border="0"></iframe>',
			controls: [
				
				["Accepteren", "accept", function() {
					fb2.setTitle("Bezig met opslaan");
					var iframe = $('frame2');
					if(iframe) {
						setValueForm(iframe,'action','accepteren');
						submitForm(iframe,'form');
						fb2.removeControl("edit");
						fb2.removeControl("accept");
						fb2.setTitle(ajaxtitle);
						setTimeout("window.location.reload(true);",3000);
					} else {
						fb2.setTitle("Foutmelding");
						fb2.setContent("Het opgevraagde formulier is niet gevonden.");
						fb2.removeControl("edit");
						fb2.removeControl("accept");
					}
				}, true],
				["Wijzigen", "edit", function() {
					fb2.setTitle("Bezig met opslaan");
					var iframe = $('frame2');
					if(iframe) {
						setValueForm(iframe,'action','wijzigen');
						submitForm(iframe,'form');					
						fb2.removeControl("edit");
						fb2.removeControl("accept");
						fb2.setTitle(ajaxtitle);
						setTimeout("window.location.reload(true);",3000);
						window.location.reload(true);
					} else {
						fb2.setTitle("Foutmelding");
						fb2.setContent("Het opgevraagde formulier is niet gevonden.");
						fb2.removeControl("edit");
						fb2.removeControl("accept");
					}
				}, true],
				["Terug naar de factuur", "close", function() { 
					this.hide();
					this.setContent('');
					this.html = '';
					window.location.href = redirect;
				}, false]
			],
			draggable: true
		});
		fb2.show();
	}
});

function submitForm(iframe,nameform) {
	var doc = null;
	if (iframe.contentDocument) {
		doc = iframe.contentDocument;
	} else if(iframe.contentWindow) {
		doc = iframe.contentWindow.document;
	} else if(iframe.document) {
		doc = iframe.document;	
	}
	if (doc == null) {
		//alert("verouderde browser");
	} else {
		var form = doc.getElementById(nameform);
		form.submit();
	}
}



function setValueForm(iframe,nameform,value) {
	var doc = null;
	if (iframe.contentDocument) {
		doc = iframe.contentDocument;
	} else if(iframe.contentWindow) {
		doc = iframe.contentWindow.document;
	} else if(iframe.document) {
		doc = iframe.document;	
	}
	if (doc == null) {
		//alert("verouderde browser");
	} else {
		var form = doc.getElementById(nameform);
		form.value = value;
	}
}



var sortOverzicht = {};
function startSortable(maxy) {
	var pagina = '';
	if ($('hidden_page_title') && $('sortOverzicht')) {
		pagina = $('hidden_page_title').value;
		var line = Cookie.read(pagina + '_line');
		var cook1 = Cookie.read(pagina + '_index');
		var cook2 = Cookie.read(pagina + '_sortBy');
		if (!line) { line = 1;}
		if (!cook1) { cook1 = 0;}
		if (!cook2) { cook2 = 'ASC';}
		
		if ($('maxaantal')) {
			maxy = $('maxaantal').value;
		}
		sortOverzicht = new sortableTable_with_navigation('sortOverzicht', {sortOn:cook1,sortBy:cook2,page:pagina,lline:line,max:maxy});
		var cook3 = Cookie.read(pagina + '_key');
		var cook4 = Cookie.read(pagina + '_col');
		if (cook3 && cook4) {
			sortOverzicht.doFilter(cook3,$('column').options[cook4].value,line);
			$('keyword').value = cook3;
			$('column').selectedIndex = cook4;
		}
	} else if ($('sortOverzicht')) {
		alert('er moet nog de "hidden_page_title" meegegeven worden.');
	} else if ($('hidden_page_title')) {
		alert('er moet nog de "sortOverzicht" meegegeven worden.');
	}
}

function vindsporter(){
	if($('sporternaam')){
		$('sporternaam').focus();
	
		$('sporternaam').addEvent('keyup', function(){
			if(this.value.length>2){
				grabajax('index.asp?page=facturen&action=addsporter&id='+ $('fid').value +'&sporternaam='+ this.value,$('zoekresult'));
			} else {
				$('zoekresult').set('html', "Vul minimaal 3 letters in om te beginnen met zoeken");
			}
			
		});		
	}
}
function doenaladen(){
	$$(".opslaan").each(function(img){
		img.addEvent("focus", function(e){
			this.getFirst('img').style.width = "20px";
			this.getFirst('img').style.height = "20px";
		});
		img.addEvent("blur", function(e){
			this.getFirst('img').style.width = "15px";
			this.getFirst('img').style.height = "15px";
		});
		
	});
}

function startSortable_class(maxy,id) {
	/*var pagina = id;
	var line = Cookie.read(pagina + '_line');
	var cook1 = Cookie.read(pagina + '_index');
	var cook2 = Cookie.read(pagina + '_sortBy');
	var line = 1;
	var cook1 = 0;
	var cook2 = 'ASC';
	if (!line) { line = 1;}
	if (!cook1) { cook1 = 0;}
	if (!cook2) { cook2 = 'ASC';}
	
	if ($('maxaantal')) {
		maxy = $('maxaantal').value;
	}
	sortOverzicht_class = new sortableTable(id, {sortOn:cook1,sortBy:cook2,page:pagina,lline:line,max:maxy});
	var cook3 = Cookie.read(pagina + '_key');
	var cook4 = Cookie.read(pagina + '_col');
	if (cook3 && cook4) {
		sortOverzicht_class.doFilter(cook3,$('column').options[cook4].value,line);
		$('keyword').value = cook3;
		$('column').selectedIndex = cook4;
	}*/
	
	var test = new sortableTable(id, {sortOn:0,sortBy:'ASC',max:500});
}




(function(context) {

	var each = function(collection, fn, context)
	{
		for (var key in collection)
		{
			if (collection.hasOwnProperty(key))
			{
				fn.apply((context || this), [key, collection[key]]);
			}
		}
		return collection;
	};

	Element.implement({
		'delegateEvent': function(type, delegates, prevent, propagate)
		{
			//get stored delegates
			var self = this,
				key = 'delegates:' + type,
				stored = this.retrieve(key) || false,
				handler = function(e)
				{
					// Get target and set defaults
					var target = document.id(e.target),
						prevent = prevent || true,
						propagate = propagate || false
						stored = self.retrieve(key),
						args = arguments;

					// Cycle through rules
					each(stored, function(selector, delegates) {
						if (target.match(selector))
						{
							if (prevent) e.preventDefault();
							if (!propagate) e.stopPropagation();
							each(delegates, function(key, fn) {
								fn.apply && fn.apply(target, args);
							});
						}
					}, self);
					return self;
				};

			// if stored delegates; extend with new delegates and return self.
			if (stored)
			{
				each(delegates, function(selector, fn) {
					(stored[selector]) ? stored[selector].push(fn) : stored[selector] = [fn];
				});
				return self;
			}
			else
			{
				stored = {};
				each(delegates, function(selector, fn) {
					stored[selector] = [fn];
				});
				self.store(key, stored);
			}

			// if event type is focus/blur then shim for delegation.
			if (/focus|blur|change/.test(type))
			{
				var wrapper = function(e)
					{
						e = new Event(e, self.getWindow());
						handler.call(self, e);
					};

				if (Browser.Engine.trident)
				{
					// aliased events for (smell)ie...
					switch (type)
					{
						case 'focus':
							self.attachEvent('onfocusin', wrapper);
							break;
						case 'blur':
							self.attachEvent('onfocusout', wrapper);
							break;
						case 'change':
							self.attachEvent('change', wrapper);
							break;
					}
				}
				else
				{
					self.addEventListener(type, wrapper, true);
				}
			}
			else
			{
				self.addEvent(type, handler);
			}
			return self;
		},

		'delegateEvents': function(delegates, prevent, propagate)
		{
			each(delegates, function(key, delegate) {
				this.delegateEvent(key, delegate, prevent, propagate);
			}, this);
			return this;
		},

		'denyEvent': function(type, selector, fn)
		{
			var stored = this.retrieve('delegates:' + type) || false;
			stored && stored[selector] && stored[selector].erase(fn);
			return this;
		},

		'denyEvents': function(type, selector)
		{
			var stored = this.retrieve('delegates:' + type) || false;
			stored && stored[selector] && delete stored[selector];
			return this;
		}
	});

})(window);


window.addEvent('domready', function(){	
	// laad schermen
	schermen = new schermen();
	document.getElements("a.addsporter").addEvent("click", function(e) {
		e.stop();
		schermen.FB_MooBox('empty_index.asp' + this.getProperty('href') + '&scherm=true',this.getProperty('title'),"",900,550);
		doenaladen();
	});
	document.getElements("a.editsporter").addEvent("click", function(e) {
		e.stop();
		schermen.FB_MooBox('empty_index.asp' + this.getProperty('href') + '&scherm=true',this.getProperty('title'),"",900,550);
		doenaladen();
	});
	
	document.getElements("a.screen").addEvent("click", function(e) {
		e.stop();
		schermen.FB_MooBox_noreload('empty_index.asp' + this.getProperty('href') + '&scherm=true',this.getProperty('title'),"",900,550);
		doenaladen();
	});
	
	if (document.id("zoekdiv")) {
		document.id("zoekdiv").delegateEvents({"click":{
			'a.screen':function(e) {
			e.stop();
			schermen.FB_MooBox_noreload('empty_index.asp' + this.getProperty('href') + '&scherm=true',this.getProperty('title'),"",900,550);
			doenaladen();
		}}});
	}
	doenaladen();
	vindsporter();
	if($('inlognaam')){
		$('inlognaam').focus();
	}
	
	$$('input.DatePicker').each( function(el){
		var a = new DatePicker(el);
	});
	/*
	$$('input.DatePicker').addEvent('blur', function(){
	
		var a = new DatePicker(this);
		var d = new Date();

		var dpval = this.value;
		if(dpval.length!=10){
			if(dpval.length==4){
				this.value = a.formatValue(this, d.getFullYear(), parseInt(dpval.substring(2,4)), parseInt(dpval.substring(0,2)));
			} else if(dpval.length==6){
				this.value = a.formatValue(this, parseInt("20"+dpval.substring(4,6)), parseInt(dpval.substring(2,4)), parseInt(dpval.substring(0,2)));
			} else {
				this.value = a.formatValue(this, d.getFullYear(), (d.getMonth()+1), d.getDate());
			}
		}
	
	
	});
	*/
	document.getElements(".bedrag").addEvents({
		'blur': function(e) {
			bedrag(this);
		},
		'focus': function(e) {
			bedrag(this);
			this.select();
		}
	});
	
	document.getElements(".getal").addEvents({
		'blur': function(e) {
			getal(this);
		},
		'focus': function(e) {
			getal(this);
			this.select();
		}
	});
	
	
	startSortable(25);
	
	$$('.sort').each( function(el){
		var id = el.id;
		startSortable_class(100,id);
	});
	
});

	function grabajax(ajaxurl, injectelem) {
		timestr = new Date();
		ajaxurl = ajaxurl + "&random="+ timestr
		var self = this;
		var req = new Request.HTML({
			method: 'get',
			url: ajaxurl,
			data: { 'ajax' : '1' },
			link: 'chain',
			onSuccess: function(a,b,response) {
				injectelem.set('html', response);
				doenaladen();
				if($('overlay')){
					$('overlay').style.width = '0px';
					$('overlay').style.height = '0px';
				}
			}
		}).send();
	}
	
function overlay(state){
	var size = $('zoekdiv').getSize();
	$('overlay').style.width = size.x+'px';
	$('overlay').style.height = size.y+'px';
	$('overlay').fade(0.7);
}
function errorscript(url,title,redirect) {
	schermen2 = new schermen();
	schermen2.FB_mooBoxOverschrijding(url,title,redirect);
}
