
jQuery.fn.dataTableExt.aTypes.push(
	function ( sData )
	{
	
	    // dutch date dd-mm-yyyy
	    oRegEx = new RegExp(/^(\<span\>)(0[1-9]|[12][0-9]|3[01])\-(0[1-9]|1[012])\-(2[0-9][0-9][0-9])(\<\/span\>)$/i);
	    
		if (sData.match(oRegEx))
		{
		    return 'dutch_date';
		}
		// time hh.mm uur
		if (sData.match(/^([012][0-9])\.([0-5][0-9]) uur.*$/))
		{
			return 'sizo_time';
		}
		// places available
		if (sData.match(/^(Nog [1-9][0-9] plaats.*|Volgeboekt)$/))
		{
			return 'sizo_available';
		}
		
		return null;
	} 
);

function isIE() {
    return /msie/i.test(navigator.userAgent) && !/opera/i.test(navigator.userAgent);
}


// dutch date dd-mm-yyyy
jQuery.fn.dataTableExt.oSort['dutch_date-asc']  = function(a,b) {
    if (isIE()) {
        a = a.replace('<SPAN>', ''); 
        a = a.replace('</SPAN>', ''); 
        b = b.replace('<SPAN>', ''); 
        b = b.replace('</SPAN>', '');
    } else {
        a = a.replace('<span>', ''); 
        a = a.replace('</span>', ''); 
        b = b.replace('<span>', ''); 
        b = b.replace('</span>', ''); 
    }

	var duDatea = a.split('-');
	var duDateb = b.split('-');
	

	var x = (duDatea[2] + duDatea[1] + duDatea[0]) * 1;
	var y = (duDateb[2] + duDateb[1] + duDateb[0]) * 1;
	
	return ((x < y) ? -1 : ((x > y) ?  1 : 0));
};

// dutch date dd-mm-yyyy
jQuery.fn.dataTableExt.oSort['dutch_date-desc'] = function(a,b) {
    if (isIE()) {
        a = a.replace('<SPAN>', ''); 
        a = a.replace('</SPAN>', ''); 
        b = b.replace('<SPAN>', ''); 
        b = b.replace('</SPAN>', '');
    } else {
        a = a.replace('<span>', ''); 
        a = a.replace('</span>', ''); 
        b = b.replace('<span>', ''); 
        b = b.replace('</span>', ''); 
    }
	var duDatea = a.split('-');
	var duDateb = b.split('-');
	

	var x = (duDatea[2] + duDatea[1] + duDatea[0]) * 1;
	var y = (duDateb[2] + duDateb[1] + duDateb[0]) * 1;
	
	return ((x < y) ? 1 : ((x > y) ?  -1 : 0));
};


// time hh.mm uur
jQuery.fn.dataTableExt.oSort['sizo_time-asc']  = function(a,b) {
	var sizoTimea = a.substr(0,5);
	var sizoTimea = sizoTimea.replace('.', '');
	var sizoTimeb = b.substr(0,5);
    var sizoTimeb = sizoTimeb.replace('.', '');
	
	var x = sizoTimea;
	var y = sizoTimeb;
	
	return ((x < y) ? -1 : ((x > y) ?  1 : 0));
};
// time hh.mm uur
jQuery.fn.dataTableExt.oSort['sizo_time-desc'] = function(a,b) {
	var sizoTimea = a.substr(0,5);
	var sizoTimea = sizoTimea.replace('.', '');
	var sizoTimeb = b.substr(0,5);
    var sizoTimeb = sizoTimeb.replace('.', '');
	
	var x = sizoTimeb;
	var y = sizoTimea;
	
	return ((x < y) ? -1 : ((x > y) ?  1 : 0));
};

// places available
jQuery.fn.dataTableExt.oSort['sizo_available-asc']  = function(a,b) {
    
    if (a == 'Volgeboekt') {
        sizoPlacesa = 0;
    } else {
//        var sizoPlacesa = a.replace(new RegExp(/^[a-zA-Z]$/), '');
        var sizoPlacesa = a.replace(new RegExp(/^\D*/), '');
        var sizoPlacesa = sizoPlacesa.replace(new RegExp(/\D*$/), '');
    }
	
    if (b == 'Volgeboekt') {
        sizoPlacesb = 0;
    } else {
//        var sizoPlacesb = b.replace(new RegExp(/^[a-zA-Z]$/), '');
        var sizoPlacesb = b.replace(new RegExp(/^\D*/), '');
        var sizoPlacesb = sizoPlacesb.replace(new RegExp(/\D*$/), '');
    }
    
    sizoPlacesa = parseInt(sizoPlacesa);
    sizoPlacesb = parseInt(sizoPlacesb);
	
	var x = sizoPlacesa;
	var y = sizoPlacesb;
	
	return ((x < y) ? -1 : ((x > y) ?  1 : 0));
};
// places available
jQuery.fn.dataTableExt.oSort['sizo_available-desc'] = function(a,b) {
    if (a == 'Volgeboekt') {
        sizoPlacesa = 0;
    } else {
//        var sizoPlacesa = a.replace(new RegExp(/^[a-zA-Z]$/), '');
        var sizoPlacesa = a.replace(new RegExp(/^\D*/), '');
        var sizoPlacesa = sizoPlacesa.replace(new RegExp(/\D*$/), '');
    }
	
    if (b == 'Volgeboekt') {
        sizoPlacesb = 0;
    } else {
//        var sizoPlacesb = b.replace(new RegExp(/^[a-zA-Z]$/), '');
        var sizoPlacesb = b.replace(new RegExp(/^\D*/), '');
        var sizoPlacesb = sizoPlacesb.replace(new RegExp(/\D*$/), '');
    }
	
    sizoPlacesa = parseInt(sizoPlacesa);
    sizoPlacesb = parseInt(sizoPlacesb);
	
	var x = sizoPlacesb;
	var y = sizoPlacesa;
	
	return ((x < y) ? -1 : ((x > y) ?  1 : 0));
};
